/*题目描述 求100~200之间的全部素数,
输入 无
输出 100~200之间的全部素数,一个素数占一行。
样例输入 无
样例输出
101
103
…
197
199 */
首先,咱们先用整数大法来判定
#include<stdio.h>
int main()
{
int n=100,i=2;
for (n=100;n<=200;n++) //代表循坏从100执行至200
{
for (i=2;i<n;i++) //判定条件:n是否在2或n-1之间能整除
{
if (n%i==0) break; // 如能整除,停止语句,注意,词语句只会影响第二个for语句
}
if (i>=n) printf("%d\n",n); //如果i>n-1了,在判定条件之外,证明其是素数
}
return 0;
}
当然还有另外一种方法,平方根大法,此种方法求起来速度更快;
#include<stdio.h>
#include<math.h>
int main()
{
int n=100,i=2,x;
for (n=100;n<=200;n++) //代表循坏从100执行至200
{
x=sqrt(n); //x是n的平方根形式的整数部分,这个不能放到int语句下方,否则x的值就成唯一常数,没意义了
for (i=2;i<=x;i++) //判定条件:i是否在2或平方根n之间能被n整除
{
if (n%i==0) break; // 如能整除,停止语句,注意,词语句只会影响第二个for语句
}
if (i>x) printf("%d\n",n); //如果i>n-1了,在判定条件之外,证明其是素数
}
return 0;
}
喜欢就评论下方把