求判断一个正整数是否是素数的算法!
比较高效的算法是智能学习机制:
建立一个存储(可以使用链表),可以先存储上一系列的素数列表
试商的时候,可以从2开始,只试素数
并且,每次判断为素数的数,都按照从小到大的排列顺序,增加到我们建立的素数列表中
这样,我们的这个程序就会越算越快.求素数怎样优化算法
1.如果要找出这个范围内的所有素数,可以使用筛选法,把不是素数的筛掉
从小到大,如果p是素数,则筛去p*p,p*(p+1),.....
2.如果只是做判断,就用Miller-Rabin测试,基于费马小定理,对于正整数n,如果存在正整数a,满足a^(n-1)=1(mod n),(=应为三行的同余)
则n为基于a的伪素数,也就基本上是素数拉,只要对随机的多个a进行测试,如果都成立,就可以认为n是素数拉.怎么求素数?最简单的方法。谢谢,用C编程。谢谢
int Su(num)
{
int i,j,k=0,a[100];
for(i=2;i<=num;i++)
{
for(j=2;j<=i/2;j++)
{
if(i%j==0)
break;
}
if(j>i/2)
{
a[k]=i;
k++;
}
}
for(i=0;i<k;i++)
{
printf("%d ",a[i]);
}
return 0;
}
程序作用是判断1到num有多少个素数,保存到数组a中。
顺序输出3到100之间所有素数的算法
#include <stdio.h>
#include <math.h>
int IsPrime(int n)
{
int i;
if(n<2)
return 0;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
return 0;
return 1;
}
void main()
{
int n;
printf("输入1个整数:");
scanf("%d",&n);
if(IsPrime(n))
printf("此数是");
else
printf("不是");
}c语言求素数的算法
根据素数的性质,代码设计如下:
设计一:判断n是否能被1~n-1整除,不能整除为素数
#include<stdio.h>
int main()
{
int i, n;
scanf("%d", &n);
for (i = 2; i < n ; i++)
{
if (n%i == 0)
break;
}
if (i < n) printf("This is not a prime.");
else printf("This is a prime.");
return 0;
}
设计二:判断n是否能被2~√n间的整数整除,不能整除为素数
#include<stdio.h>
#include<math.h>
int main()
{
int n,i;
double k;
scanf("%d", &n);
k = sqrt(n);
for (i = 2; i <= k;i++)
{
if (n%i == 0) break;
}
if (i <=k) printf("This is not a prime.");
else printf("This is a prime");
return 0;
}
扩展资料:
1.素数的定义是只能被1和他本身整除,1不是素数.因此要判断一个数是否为素数.就要判断它能不能被比他小的所有素数整除,这是一个算法.(写到算法时,我只能写出用它除以比他小的所有数,造成运算速度低下)
2.如果一个质数大于根号n,而n可以除尽它,那么n必然也可以除尽一个更小的质数。
由此可以得到一个法2较快的素数判断算法?
参考资料:搜狗百科-scanf
参考资料:搜狗百科-质数有能写出所有素数的公式吗
有的,上面的没表达清楚。
在公式A=(n-1)*(||B2-1|-(B2-1)|)/2+2, 其中B=m(n+1)-(n!+1)中,m,n以自然数代入,所得的结果一定是素数。
这就是自欧几里德在<<几何原本>>证明了素数是无限多个后,多少世纪以来人们一直所寻找的能写出所有素数的公式!
不难看出,A一定是整数,且有: 若B=0,有A=n+1; 若B≠0, 有A=2.
B≠0时,A已为素数,当B=0, 即m(n+1)-(n!+1)=0, 即m=(n!+1)/(n+1).在初等数论中有一著名的定理叫做"威尔逊定理", 可陈述为(n!+1)/(n+1)为整数的充要条件是n+1是素数。
所以B=0时,m=(n!+1)/(n+1)为整数,故A=n+1必为素数。
LZ喜欢数论吗?我对这个比较喜欢。
刚从硬盘里翻出来的,呵呵~
Virmach自上次推出了短租30天的VPS后,也就是月抛型vps,到期不能续费,直接终止服务。此次又推出为期6个月的月抛VPS,可选圣何塞和水牛城机房,适合短期有需求的用户,有兴趣的可以关注一下。VirMach是一家创办于2014年的美国商家,支持支付宝、PayPal等方式,是一家主营廉价便宜VPS服务器的品牌,隶属于Virtual Machine Solutions LLC旗下!在廉价便宜美国...
PacificRack最近促销上瘾了,活动频繁,接二连三的追加便宜VPS秒杀,PacificRack在 7月中下旬已经推出了五款秒杀VPS套餐,现在商家又新增了三款更便宜的特价套餐,年付低至7.2美元,这已经是本月第三波促销,带宽都是1Gbps。PacificRack 7月秒杀VPS整个系列都是PR-M,也就是魔方的后台管理。2G内存起步的支持Windows 7、10、Server 2003\20...
? ? ? ?创梦网络怎么样,创梦网络公司位于四川省达州市,属于四川本地企业,资质齐全,IDC/ISP均有,从创梦网络这边租的服务器均可以****,属于一手资源,高防机柜、大带宽、高防IP业务,另外创梦网络近期还会上线四川联通大带宽,四川联通高防IP,一手整CIP段,四川电信,联通高防机柜,CN2专线相关业务。成都优化线路,机柜租用、服务器云服务器租用,适合建站做游戏,不须要在套CDN,全国访问快...
素数算法为你推荐
bean是什么意思javabean和实体类的区别?爱短信官网求助。爱短信爱聊怎么用?网络视频下载器万能网络视频下载器 1.34怎么用excel大写金额怎么用Excel将小写金额转换成人民币的大写金额renderpartialreact里面使隐藏的组件显示出来是addclass还是render暴力破解rar求暴力破解rar压缩包软件手机软件开发工具做安卓软件开发需要哪些工具?shoujiao手机电池突然充不上电,是怎么回事?该怎么办?shoujiao如何区分是不是颈椎病?云输入法如何使用QQ云输入法?
a2hosting 美元争夺战 info域名 空间服务商 租空间 国外网站代理服务器 有益网络 日本bb瘦 韩国名字大全 速度云 免费吧 nerds 129邮箱 腾讯实名认证中心 最漂亮的qq空间 服务器维护 我的世界服务器ip 工信部网站备案查询 主机返佣 成都主机托管 更多