[문제]
10개의 소수(Prime Number)를 출력하는 프로그램을 작성해 보자. 참고로 정수 num이 1과 num으로 밖에 나눠지지 않는다면 이는 소수에 해당한다.
조건1) 소수를 판단하는 함수 IsPrime()을 만들 것
[실행결과]
2 3 5 7 11 13 17 19 23 29
[코드1]
#include<stdio.h>
int IsPrime(int n);
int main(void)
{
int i=2, cnt=0;
while(cnt!=10)
{
if(IsPrime(i)==1)
{
printf("%d ", i);
cnt++;
}
i++;
}
return 0;
}
int IsPrime(int n) // 소수면 true(1) 리턴
{
int divisors=0, i;
for(i=1; i<=n; i++)
{
if(n%i==0)
divisors++;
}
if(divisors==2)
return 1;
return 0;
}
[코드2]
#include<stdio.h>
#include<stdbool.h>
bool IsPrime(int num);
int main()
{
int i;
int cnt = 0, num = 2;
while (cnt != 10)
{
if (IsPrime(num) == true)
{
printf("%d ", num);
cnt++;
}
num++;
}
return 0;
}
bool IsPrime(int num)
{
int i;
int divisor = 0;
bool res = false;
for (i = 1; i <= num; i++)
if (num % i == 0) divisor++;
if (divisor == 2) res = true;
return res;
}
<참고>
윤성우의 열혈 C 프로그래밍