ACM 入门1170

xiaoxiao2025-02-15  18

/*题目描述 求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; }

喜欢就评论下方把

转载请注明原文地址: https://www.6miu.com/read-5024819.html

最新回复(0)