轮圈修复:求判断一个正整数是否是素数的算法!

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/24 14:38:53
求判断一个正整数是否是素数的算法!!!
除了按照素数的定义逐个地试商,有没有什么高效率的算法呢?

C/C++

比较高效的算法是智能学习机制:
建立一个存储(可以使用链表),可以先存储上一系列的素数列表
试商的时候,可以从2开始,只试素数
并且,每次判断为素数的数,都按照从小到大的排列顺序,增加到我们建立的素数列表中

这样,我们的这个程序就会越算越快.

#include<math.h>
#include<stdio.h>
main()
{
int i,j,n;
scanf("%d",&j);
for(i=2;i<=sqrt(j);i++)
{
if(j%i==0) {n=0; break;}
else n=1;
}
if(n) printf("%d is a ss",j);
else printf("%d is not a ss",j);

}

什么语言??

给你一个思路
从2到Sqrt(这个数)去除这个数,如果有任何一个除得断就不是,否则就继续做

关注。

其实还有一个效率更高的方法,素数筛选法,其思路就是从2开始把素数的倍数去掉,剩下的都是素数了

先找出100以内的素数,
在使用这100以内的去测试。

使用希腊的素数表