问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

判断是否为质数的快速算法

发布网友 发布时间:2022-05-22 10:58

我来回答

5个回答

热心网友 时间:2024-03-08 04:13

#include<stdio.h>
#include<stdlib.h>
#define SIZE 1000000
char table[SIZE];
int prime[168]=
{
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,
53, 59, 61, 67, 71, 73, 79, 83, 89, 97,101,103,107,109,113,
127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,
199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,
283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,
383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,
467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,
577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,
661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,
769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,
877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,
983,991,997
};
int init()
{
int i,j;
memset(table,1,SIZE);
table[0]=table[1]=0;
for(i=0;i<168;++i)
{
for(j=prime[i]*2;j<SIZE;j+=prime[i])
{
table[j]=0;
}
}
}
int main()
{
int i;
init();
while(scanf("%d",&i)!=EOF)
{
printf(table[i]?"yes":"no");
}
return 0;
}

热心网友 时间:2024-03-08 04:13

直接定义一个a[1000001],不用二分法,很快的:
#include<stdio.h>

int a[1000001]={0};

int main()
{
int i,j;
i=2;
a[1]=1;
while(i<=500000)
{
for(j=2;i*j<=1000001;j++)
a[i*j]=1;
i++;
while(a[i]==1) i++;
}
scanf("%d",&i);
while(i!=0)
{
if(a[i]==0) printf("素数\n");
else printf("不是素数\n");
scanf("%d",&i);
}
return 0;
}

热心网友 时间:2024-03-08 04:14

// 判断n是否为质数
bool IsPrimeNumber(int n)
{
if (n==2)
{
return true;
}

if (n%2==0)
{
return false;
}

int sqrtn=(int)sqrt((double)n);
bool flag=true;

for (int i=3;i<=sqrtn;i+=2)
{
if (n%i==0)
{
flag=false;
}
}
return flag;
}

热心网友 时间:2024-03-08 04:14

我用筛法 筛选出 10^6以内的素数 大概耗时46ms

那你直接用筛法来判断是不是质数不就OK了

热心网友 时间:2024-03-08 04:15

这个方法是目前最实用的 要突破时间 只能从数学方面入手
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 设计一个算法判断一个数是不是质数 求英文歌名! 有哪些好听的英文歌。。 周笔畅在《百变大咖秀》里唱的歌名叫什么? 推荐几首带点颓废兴味的好听英文歌曲! 一首欧美mv开头是一双手交叉 最近有个很流行的英文歌曲 很好听 但是不知道叫什么 一个女星唱的 不是很DJ 求助!如题 谢谢了 一首好听的手机铃声。。。来电的 懒人之歌的英文名叫什么 坦克世界闪电战,TD二选一, 你起来动动躺一天了是什么歌名 求网友推荐一些好听的歌(各种语言不限)! 一个男的旁边一群戴猴子头套的,这个MV是哪首歌? 麻烦能不能帮忙发一份懒人之歌,MP3格式的,急用,看见你回复别人的帖子了,所以想请你帮个忙!非常感谢! 你好 ! 能不能把懒人之歌mp3格式发给我 ?cctv_1988@126.com 谢谢! 坦克世界 su152和猎豹那个给力。 郑州市陇海东路金河小区所属哪个居委会? 金河小区怎么样?好不好?值不值得买? tmark品牌旗下有哪些专属系列 康拜恩品牌有哪些系列产品呢? 判断一个数是不是质数的算法,流程图 请写出判断n(n&gt;2)是否为质数的算法. c语言求质数的算法,讲方法也行,不要那种on2的算法 “判断n是否为质数”的算法 判断一个数是否是质数的程序框图,还有算法,7是不是质数过程? 什么是素数算法 判断一个正整数是否是素数的常用算法是 A,排序法 B,回溯法 C,递归法 D,穷举法_百度问一问 任我游行车记录仪怎么样,这个牌子的好不好? 任我游S3配置什么样的后置摄像头? 任我游行车记录仪价格怎么样,质量好吗? 任我游行车记录仪怎么样好吗? 官网的任我游行车记录仪怎么样,质量真的好吗? 任我游行车记录仪为什么后摄像不显示? 帮别人画宣传漫画,A4大小,应该要多少钱一幅啊?黑白的或上色的请都告诉我,谢谢。 中国有街头画家吗就是帮路人画一幅画然后给他多少钱。 现在帮人家画一张画多少钱?日漫多少钱一张?原画一张多少钱? 漫画(假文盲) 有高人在吗,帮帮忙 画一幅画,要求画出:书、一栋房子、一棵树、自己的自画像、另个人(要标注出她是谁 请问帮人手绘一副黑白铅笔画大概收多少钱? 快餐店里的食用油是否达标了?