static void Main(string[] args)
{
int cnt = 0;
for (int i = 2; i <= 1000; i++) // 2 ~ 1000
{
int j;
for (j = 2; j < i; j++) //나누는 수
{
if (i % j == 0) break; // 나누어 떨어진다면 소수가 아니므로 break;
}
if (j == i) //반복문을 지나쳐 j == i 인 조건까지 왔다면 소수. 소수는 1과 자기자신으로 나누어 떨어짐
{
Console.Write("{0}\t", i);
cnt++;
}
}
Console.WriteLine();
Console.WriteLine("소수의 개수 : {0}", cnt);
}
1.외부 loop 2 ~ 1000까지 반복문을 수행
2. 내부 loop - 외부 loop의 값을 나누려는 수
3. 외부 loop 'i' 가 내부 loop 'j' 로 나누어 떨어지면 소수에서 제외 . > break;
4. 내부 loop를 지나쳐 i == j 조건 까지 도달하면 소수.
※ 조건문이 2부터 시작하는 이유 : 소수는 1과 자기자신으로 나누어 떨어지기때문에 1부터 시작한다면 무조건 나누어 지기 때문에 소수를 걸러낼 수 없음.