반응형
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#]
반응형
'프로그래밍 > 알고리즘' 카테고리의 다른 글
[C언어/알고리즘]1~100 사이의 자연수 중 입력한 수의 배수 출력하기 (0) | 2012.04.12 |
---|---|
[C언어/알고리즘]입력된 수의 계승(팩토리얼)값 출력하기 (0) | 2012.04.12 |
[C언어/알고리즘]1~100 사이 자연수의 모든 합계 (0) | 2012.04.12 |
C언어 프로그래밍 필기 문제 (0) | 2012.04.07 |
프로그래밍 필기 문제(첨부) (0) | 2012.04.05 |