900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 运用c语言编写程序:判断素数的多种方法

运用c语言编写程序:判断素数的多种方法

时间:2022-04-18 13:03:07

相关推荐

运用c语言编写程序:判断素数的多种方法

素数是一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数;判断一个数是不是素数只需让2-这个数本身减一的所有数进行相除,如果没有一个数能把这个数本身整出,这个数就是素数.

设判断X;

所以我们可以运用for循环,使得i=2;i<x;i++for(i=2;i<x;i++)

来进行判断 在一个循环中x%1到x-1所有的数,没有一个等于0,这个数就是素数.

判断多个数只需在for循环外再加一个循环即可.

1.判断一个数是否为素数

#include<stdio.h>int main(){int input = 0;scanf("%d", &input);int i = 0;for (i = 2; i < input; i++){if (input % i == 0){break;}}if (i >= input){printf("%d是素数",input);}else{printf("%d不是素数", input);}return 0;}

2.判断100-200中的素数(最简单)

#include<stdio.h>int main(){int j = 0;int i = 0;for (j = 100; j <= 200; j++){for (i = 2; i < j; i++){if (j % i == 0){break;}}if (i >= j){printf("%d是素数\n", j);}//else//{//printf("%d不是素数\n", input);//}}return 0;}

运行结果:

101是素数

103是素数

107是素数

109是素数

113是素数

127是素数

131是素数

137是素数

139是素数

149是素数

151是素数

157是素数

163是素数

167是素数

173是素数

179是素数

181是素数

191是素数

193是素数

197是素数

199是素数

3.判断100-200中的素数(改进)

例如16=2*8=4*4,假设一个数X,当X不是素数时,肯定有一个小于等于X/2的数会使得X被整出,从而判断出X不是素数,本例中 2和4都可使16被整除.

#include<stdio.h>int main(){int j = 0;int i = 0;for (j = 100; j <= 200; j++)//100的数{for (i = 2; i < j/2; i++)//判断--只需判断j/2个数即可{if (j % i == 0){break;}}if (i >= j/2){printf("%d是素数\n", j);}//else//{//printf("%d不是素数\n", input);//}}return 0;

运行结果:

101是素数

103是素数

107是素数

109是素数

113是素数

127是素数

131是素数

137是素数

139是素数

149是素数

151是素数

157是素数

163是素数

167是素数

173是素数

179是素数

181是素数

191是素数

193是素数

197是素数

199是素数

4.判断100-200中的素数(进一步改进)

例如16=2*8=4*4,这次我们可以看,假设一个数X,当X不是素数时,肯定有一个小于等于根号下X的数会使得X被整出.

#include<stdio.h>#include<math.h>int main(){int j = 0;int i = 0;for (j = 100; j <= 200; j++)//100的数{for (i = 2; i < sqrt(j); i++)//判断--只需判断根号下j个数即可{if (j % i == 0){break;}}if (i >= sqrt(j)){printf("%d是素数\n", j);}//else//{//printf("%d不是素数\n", input);//}}return 0;}

运行结果:

101是素数

103是素数

107是素数

109是素数

113是素数

121是素数

127是素数

131是素数

137是素数

139是素数

149是素数

151是素数

157是素数

163是素数

167是素数

169是素数

173是素数

179是素数

181是素数

191是素数

193是素数

197是素数

199是素数

5.判断100-200中的素数(进一步改进)

可知素数一定不会是偶数,对此我们可以把100-200中的偶数去除.

#include<stdio.h>#include<math.h>int main(){int j = 0;int i = 0;for (j = 101; j <= 200; j+=2)//去除掉偶数{for (i = 2; i < sqrt(j); i++)//判断--只需判断根号下j个数即可{if (j % i == 0){break;}}if (i >= sqrt(j)){printf("%d是素数\n", j);}//else//{//printf("%d不是素数\n", input);//}}return 0;}

输出结果:

101是素数

103是素数

107是素数

109是素数

113是素数

121是素数

127是素数

131是素数

137是素数

139是素数

149是素数

151是素数

157是素数

163是素数

167是素数

169是素数

173是素数

179是素数

181是素数

191是素数

193是素数

197是素数

199是素数

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。