C语言求素数技巧:优化for循环结构,正确添加括号

创始人
2024-12-18 21:42:16
0 次浏览
0 评论

c语言关于用for循环求素数

要在第二个for中添加括号,请按如下所示添加:

main(){inti,j;for(i=2;i<100 i++){for(j=2;j xss=clean>(i/2)、即没有找到能被整除的数,因此认为它是素数。
if(i%j!=0)printf("%d\t",i);}printf("\n");}

C语言编程判断输入的正整数是否为素数。

替换:for(k=2;k<=x[i]-1;k++)为:for(g=0,k=2;k<=x[i]-1;k++)主要令g=0在for循环之前。

由于输入了多个数字,当输入第一个数字时,初始初始化g=0可能已经改变。
如果后面的数字不是在g=0处重新开始,则不能保证它们是正确的。

判断正整数n是否为素数的思路:

思路1):因此,判断整数m是否为素数,只需要除以m即可2~m-1之间如果m不能被所有整数整除,则m是质数。
想法2):此外,决策方法可以简化。
m不需要除以2~m-1之间的每个整数,只需除以2~√m之间的每个整数即可。

如果m不能被2到√m之间的任何整数整除,则m必须是素数。
例如,要确定17是否是质数,只需将17除以2到4之间的每个整数即可。
由于它们不可整除,因此可以确定17是素数。
原因:因为如果m能被2到m-1之间的任意整数整除,那么它的两个因数之一必须小于或等于√m,另一个必须大于或等于√m。

例如,16可以被2、4和8整除,16=2*8,2小于4,8大于4,16=4*4,4=√16。
,因此只需在2~4之间确定,不考虑任何因素。

正确的代码如下:

#include<math.h>/*sqrt*/

#include/*scanf,printf,system*/

intisPrime(intn)//判断n是否为素数如果是,则返回1,否则返回0。

{

if(n<=1)return0;//如果小于等于1则直接退出。

inti;

for(i=2;i<=(int)sqrt(n);i++)//去2的算术平方根。

if(!(n%i))return0;//如果有除数且不是素数,则返回0。

return1;//如果没有除数,则返回1,表示为素数。

}

main()

{

intnum;

scanf("%d",&num);

if(isPrime(num))//num是质数。

printf("%disaprime",num);

否则

printf("%disn'taprime",num);//数一不是素数。

System('stop');//停止界面。

return0;

}

扩展信息:

判断是否为正整数或回车是否0是质数:

#include"stdio.h"

intmain()

{

while(1)

{

intn,flag,i;

printf("请输入一个数字:");

scanf("%d",&n);

flag=n/2+1;

if(n==0||n==1)

printf("%d既不是质数也不是合数\n",n);

elseif(n==2)

printf("%d是质数\n",n);

否则

{

for(i=2;i<=flag;i++)

{

if((n%i)==0)

printf("%d不是素数,它是合数\n",n);

break;

}

if(i==flag&&(n%i)!=0)

if(i==flag&&(n%i)!=0)

printf("%d是质数\n",n);

}

}

}

}

c语言找出1到999中的所有素数用for循环写

#include"math.h"voidmain(){core,j,leap=1;for(i=1;i
热门文章
1
SQL多表连接查询全解析:JOIN语句应... sql多表关联查询在执行SQL多表连接查询时,可以使用JOIN语句将多个表连接在...

2
Java中字符串类型详解:String与... 变量有字符类型,为什么没有字符串类型??基本类型:charshort、int、l...

3
JavaSE与JavaEE:从基础到企业... javase&#160;和javaee的区别?JavaSE和JavaEE...

4
Java程序员面试必知:核心技术问答与技... java编程程序员技术面试常见面试?随着互联网的不断发展,Java开发已经成为很...

5
Java.exe与Javaw.exe:区... 程序中java和javaw有什么区别java和javaw的区别:两者都是Java...

6
深入解析:Java中的javax包及其与... JAVA导入时,什么是javax?awt是java1.0,swing是java2...

7
Java中Scanner类导入位置及使用... 在java中这句语言“importjava.util.Scanner;”是什么意...

8
Java数组倒序输出:排序后逆序存储方法... Java数组倒序输出?1.反转数组的方法有很多种,比如先排序,然后倒序存储pub...

9
C语言改错难题解析:第二处错误详解及修改... 请问这个C语言改错题怎么做呀?我做了很久都没写出来,第二处错误不知道怎么改。那位...

10
C语言实验心得:C51编程技巧与性能优化... c语言实验报告心得C语言测试经验:1、只有经常使用或者运算速度要求高的变量才应该...