ver1.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include <stdio.h>
int main(void)
{
int i, n;
unsigned long counter = 0; //나눗셈 횟수
for (n = 2; n <= 1000; n++) {
for (i = 2; i < n; i++) {
counter++;
if (n%i == 0)
break;
}
if (n == i)
{
printf("%d\n", n);
}
}
printf("나눗셈을 실행한 횟수:%lu\n", counter);
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
ver2.c
소수 배열 저장
저장된 소수로 나누기
바깥 for문 n 값 2씩 증가해서 홀수값만 생성, 4이상의 짝수는 2로 나누어 떨어지기 때문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include <stdio.h>
int main(void)
{
int i, n;
int prime[500]; //소수를 저장하는 배열
int ptr = 0; //이미 얻은 소수의 개수
unsigned long counter = 0; //나눗셈 횟수
prime[ptr++] = 2; // 2는 소수.
for (n = 3; n <= 1000; n += 2) { //홀수만을 대상으로 한다. 4이상의 짝수는 2로 나누어 떨어지기 때문
for (i = 1; i < ptr; i++) { // 이미 얻은 소수로 나눕니다.
counter++;
if (n%prime[i] == 0) //나누어 떨어지므로 소수가 아님
break;
}
if (ptr == i)
prime[ptr++] = n;
}
for (i = 0; i < ptr; i++)
printf("%d\n", prime[i]);
printf("나눗셈을 실행한 횟수 %lu", counter);
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
'IT 관련 공부 > 자료구조와 알고리즘 (C)' 카테고리의 다른 글
이진 검색 binary search (0) | 2019.07.17 |
---|---|
선형검색, 선형검색 보초법 (0) | 2019.07.09 |
진수변환 프로그램 (0) | 2019.07.05 |
n단 숫자 피라미드, 바람개비 (0) | 2019.07.02 |
Chap01 중간 값 구하기, 피라미드 별찍기 (0) | 2019.07.01 |