Чтобы проверить, является ли N
простым, переберите все числа от 2
до N
, чтобы увидеть, делится ли N
на любое другое число. Каждое число делится на 1
, поэтому, когда вы проверяете числа на простое число, начинайте тестирование с 2
.
Пример
#include <stdio.h>
int is_prime(int N)
{
//0 and 1 are not primes
if (N < 2)
return 0;
//start testing against 2
for(int i = 2; i < N; i++)
if(N % i == 0)
return 0; //not a prime
return 1; //prime
}
int main()
{
printf("Primes from 0 to 1000:\n");
for(int i = 0; i < 1000; i++)
if(is_prime(i))
printf("%d, ", i);
printf("\n");
return 0;
}
Вы можете оптимизировать цикл, изменив диапазон на N/2
.
for(int i = 2; i <= N/2; i++)
if(N % i == 0)
return 0; //not a prime
return 1;//prime