본문 바로가기
프로그래밍/알고리즘

[C언어/알고리즘]1과 100 사이의 모든 소수(Prime Number)를 출력하기

by 알용 2012. 4. 12.
반응형

1 ~ 100 사이의 소수(Prime Number)를 출력하는 문제이다.

여기서 말하는 소수란 0.123 과 같은 소숫점 단위의 수가 아니라

2, 3, 5, 7 과 같은 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수를 뜻한다.

출력예시:

2
3
5
7
9
11
..

 

위 방법은 비교적 간단한 방법입니다.

아래 코드는 조금 더 복잡하지만 위 코드보다는 효율적인 알고리즘입니다.
사실, 정수 n의 소수 판별 여부를 확인하려면 n의 제곱근까지만 나누어 보면 됩니다.
주의할 점은 sqrt 함수의 반환형이 double형이므로 int형으로 캐스팅해주어야 한다는 점과
for( j = 2; j <= (int)sqrt(i); j++ )
위와 같이 조건문에 함수를 써 반복문이 돌아갈 때마다 함수를 호출함과 동시에 캐스팅을 하는 코딩을
자제해야 한다는 것입니다. 

 

_M#]

 

반응형