본문으로 바로가기
반응형

소수구하기는 강사님께서 시험으로 내주신 실습문제입니다.

 

소수는 약수가 1과 자기자신밖에 없는 숫자로 2, 3, 5, 7, 11, 13등이있는데 구하는 법을 알아야합니다.

숫자 n이 소수인지 확인하려면 2~n-1까지 나누어 떨어지는 수가 없을때 소수라고 할 수 있습니다.

(프로그래밍에서 %는 나눗값의 나머지를 구하는 연산자입니다)

11로 예를들면,

11%2

11%3

11%4

11%5

11%6

11%7

11%8

11%9

11%10 

11%11 = 1

을 했을때, 나머지가 0인 경우가 없기때문에 11은 소수라고 할 수 있습니다.

 

10으로 예를들면

10%2 = 0이 되기때문에 10은 소수가 되지 않는 것입니다.

 

그럼 소스코드를 짜볼까요!

 

int a;
int b;
for(a=2; a<100;a++)
{
b = 2;
while(a>b)
{
if (a % b == 0)     // 나머지가 0이면 소수가 아니므로 break로 빠져나갑니다.
{
break;
}
else                   // 나머지가 0이 아닌경우 b++을해서 다시 while문을 돌립니다.
{
b++;
}
}
if (a == b)              // 나누어서 떨어지는 수가 자기자신일때 소수이므로 이때 a를 출력합니다.
{
Console.Write(" {0} ", a);
}
}
Console.WriteLine();

만약 a가 5일때는 if문에는 걸리지않으므로 else로 b가 2, 3, 4까지 while문에 걸렸다가 b가 5가 됬을때 출력합니다.

      a가 6일때는 if문에 b가 2일경우 나머지가 0이되어서 break로 빠져나가서 ++a가 되어서 7이 됩니다.

 

이렇게 a가 100까지 반복하다보면 소수들이 출력되어서 실행창에 뜨게됩니다.   

반응형