判断一个数是不是素数的c语言程序

判断一个数是不是素数的c语言程序,第1张

判断一个数是否是素数

#include "mathh"

int su(long x)

{

int i;

if(x%2==0) return 0;

else

for(i=3;i<sqrt(x);i+=2)

if(x%i==0) return 0;

return 1;

}

判断素数,若是就返回1,否则就返回0,先看能不能被2整出,若整除肯定不是素数,如不整除就看它能不能被3,5,7,9。。。一直到sprt(x),整除。若整除就不是素数

判断是否是质数最直观和简单的方法就是从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,xp=n。如果x不小于等于它的平方根,则xx>n,而p>x,故xp>n,假设不成立。合数是与质数相对应的自然数。一个大于1的自然数如果它不是合数,则它是质数。也就是说如果一个数能被它的最小质因数整除的话,那它肯定是合数,即不是质数。所以判断一个数是否是质数,只需判断它是否能被小于它开跟号后的所有数整除,因此,这样做的运算少了很多,降低了时间复杂度。

1、首先打开CodeBlocks,创建一个新项目。

2、项目语言,选择“c”, 我们将项目名称命名为“primeNumber”。

3、然后下一步点击“finish”。

4、创建好项目后,我们打开 “mainc”文件。

5、素数即质数,也就是除了1和它本身以外不再有其他因数,首先是实现输入口。

6、输入口完成后,接下来就是判断素数。 要判断素数,我们要从它的特点开始找。素数的因子 只有1和它本身。那么,就是说,我们可以通过找到这个数的所有因数,进行比对即可。

7、先定义好相关的变量,这里result是用来存储因子之和的,用循环,遍历所有可能因子。

其中 if判断,i是不是prime的因数。 %是求余数的运算符。当能被整除时,结果为0。

8、执行完for循环后,result中存入的就是 prime的因数之和,其中也包括它本身。接下来只要判断 prime+1 是否与result相等。如果相等,就表示result中是1+数本身,即为素数。

以上就是关于判断一个数是不是素数的c语言程序全部的内容,包括:判断一个数是不是素数的c语言程序、c语言怎么判断一个数是素数、c语言判断是不是素数的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9300234.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存