输出100~200之间的素数
法一:判断一个整数 i 是否是素数,只需用 i 去 除 2 ~ i-1 之间的每一个整数,若都不能被整除,那么 a 就是一个素数。
#include <stdio.h>
int main()
{
int i = 100;
int j = 2;
printf("打印100~200之间的素数:");
for (i = 100; i <= 200; i++)
{
for (j = 2; j < i; j++)
{
if (i % j == 0)
break;
}
if (j >= i)
{
printf("%d,", i);
}
}
return 0;
}
法二:法一计算了2 ~ i-1次,但是完全没必要。因此做一下简化,i只需被 2 ~ sqrt(i) 之间的每一个整数去除就可以了。如果 i不能被 2 ~ sqrt(i)间的任何一个整数整除,那么 i 必定是素数。以下为简化后的代码
#include <stdio.h>
#include <math.h>
//素数
int main()
{
int i, j;
printf("打印100~200之间的素数:");
for (i = 100; i <= 200; i++)
{
for (j = 2; j <= sqrt(i); j++)
{
if (i % j == 0)
break;
}
if (j > sqrt(i) - 1)
{
printf("%d,", i);
}
}
return 0;
}