素数规则:
大于1;
只有一和它本身两个因数。
逻辑1:该数x 对2到x-1,取余,结果不为0则是素数
#include <stdio.h>
//逻辑1:该数x 对2到x-1,取余,结果不为0则是素数
int is_prime(int x)
{
int i = 0;
for (i = 2; i < x; i++)
{
if (x % i == 0)
return -1;
}
return 1;
}
// 输出100以内的素数
int main()
{
int num = 100;
int j = 1;
int count = 0;
for (j = 2; j <= num; j++)
{
if (is_prime(j) == 1)
{
count++;
printf("%d ", j);
}
}
printf("共%d个\n", count);
return 0;
}
逻辑2(优化):所有非素数x都能被x的平方根整除
//逻辑2(优化):非素数x能被x平方根整除
#include <math.h>
int is_prime(int x)
{
int i = 0;
for (i = 2; i <= sqrt(x); i++)
{
if (x % i == 0)
return -1;
}
return 1;
}
// 输出100以内的素数
int main()
{
int num = 100;
int j = 1;
int count = 0;
for (j = 2; j <= num; j++)
{
if (is_prime(j) == 1)
{
count++;
printf("%d ", j);
}
}
printf("共%d个\n", count);
return 0;
}