本问题关键的问题在于怎样判断一个数是素数
这里提供两种方法
1.判断n是不是素数,就将n依次和2到n-1相除,若余数一直不为0,那么n就是素数
2.或者更简单一点将n依次和2到n的开二次方根(算数平方根)相除即可,若余数一直不为0,那么n就是素数
实现
#include <stdio.h>'
#include <math.h>
//写出100-200之间的素数
int is_prime(int x)//判断一个数是不是素数
{
int j = 2;
for (j = 2; j <= sqrt(x); j++)
{
if ((x % j) == 0)
return 0;
}
if (j == (int)(sqrt(x) + 1))//注意这里一定要强制类型转换,因为sqrt返回值是double,
//换句话说如果不强制类型转换的话,数学上一边是小数,一边是整数,肯定是不相等的
{
return 1;
}
}
int main()
{
int i = 0;
for (i = 100; i <= 200; i++)
{
if (is_prime(i) == 1)
{
printf("%d\n", i);
}
}
return 0;
}