Поиск простых чисел - C (СИ) (69584)
Формулировка задачи:
Здравствуйте. Хотелось бы узнать, каким образом я могу оценить сложность этого алгоритма, можно ли его сделать менее трудоемким для компьютера. Спасибо.
#include <stdio.h>
#include <stdbool.h>
#define LIM 1000
int main(void)
{
int num, divisor, i, j, k = 0;;
_Bool prime = true;
int mass[LIM];
printf("Введите число\n");
scanf("%d", &num);
for(divisor = 1, k = 0; divisor <= 3; ++ divisor)
{
if(num > divisor)
{
mass[k] = divisor;
++k;
}
}
for(divisor = 4; divisor <= num; ++divisor)
{ for(j = 2; j < divisor/2; ++j)
{
if(divisor % j == 0)
{
prime = false;
break;
}
else
{
prime = true;
}
}
if(prime == true)
{
mass[k] = divisor;
++k;
}
}
for(i = 0; i < k; ++i)
{
printf("%d\n", mass[i]);
}
}Решение задачи: «Поиск простых чисел»
textual
Листинг программы
for(j = 2; j*j <= divisor; ++j)