c语言怎么判断一个数是素数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言怎么判断一个数是素数相关的知识,希望对你有一定的参考价值。

这个错在哪

判断是否是质数最直观和简单的方法就是从2开始直接除,能除尽(余数为0)就不是质数。则C语言实现为:
int isprime(int m)

int i;
for(i=2;i<m;i++)
if(m%i==0)
return 0;
else
return 1;

该算法的时间复杂度O(n)。
可以改进一下,根据如果一个数是合数,那么它的最小质因数肯定小于等于它的平方根。用反证法可以证明一下。假设x是n的最小质因数,则存在n/x=p。p>x,x*p=n。如果x不小于等于它的平方根,则x*x>n,而p>x,故x*p>n,假设不成立。合数是与质数相对应的自然数。一个大于1的自然数如果它不是合数,则它是质数。也就是说如果一个数能被它的最小质因数整除的话,那它肯定是合数,即不是质数。所以判断一个数是否是质数,只需判断它是否能被小于它开跟号后的所有数整除,因此,这样做的运算少了很多,降低了时间复杂度。追问

#include
#include
int main()

int i,k,m;
int n=0;
scanf("%d",m);
k=sqrt(m)+0.01;
for(i=2;i<k;i++)
if(m%i==0)
printf("This is not a prime");
break;
if(i==k+1)

printf("This is a prime");


return 0;

我这个错在哪

参考技术A 不要拍照,直接copy代码上来看吧。。。。看不清。。。追问

#include
#include
int main()

int i,k,m;
int n=0;
scanf("%d",m);
k=sqrt(m)+0.01;
for(i=2;i<k;i++)
if(m%i==0)
printf("This is not a prime");
break;
if(i==k+1)

printf("This is a prime");

return 0;

C语言试题六十九之请编写函数判断一个数是不是素数

1、 题目

编写函数:判断一个数是不是素数

素数:素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。

2 、温馨提示

      C语言试题汇总里可用于计算机二级C语言笔试、机试、研究生复试中C程序设计科目、帮助C语言学者打好程序基础、C语言基础,锻炼您的逻辑思维和解决问题的能力,帮助你成为C语言笔试、机试解题高手,帮助你拿到C语言工作的offer,每一个题目都附带源代码和运行结果,让你不再有任何困惑,妈妈再也不担心我的C语言了。如果程序有任何看不懂或者哪个步骤不理解的地方都可以加我微信(15874274916)私聊我,或者有更好的思路解决办法都可以加我微私聊,一起探讨、希望可以正真的帮助到你,同时也可以扫下面的二维码关注我微信公众号,比如你还对生活、美食或者其它方面都感兴趣,都可以加微信交流,博主擅长讲解计算机相关方面的知识、如果大家对计算机方向、前端、移动端、服务端、数据结构、算法、网络、高数等等一些列方向比较迷茫或者不知道要学哪些?或者具体怎么学?或者其它方向有任何困惑都可以找我交流,谢谢大家关注。


     

以上是关于c语言怎么判断一个数是素数的主要内容,如果未能解决你的问题,请参考以下文章

C语言中如何判断一个数是完全平方数

如何用c语言编程判断一个数是否素数?

C语言中判断N个数中的素数并求和

c语言编程:设计一个函数用于判断一个数是不是为素数,如果是素数返回1,否则返回0。

C语言中素数的判断方法

如何用c语言判断一个数是回文数