永发信息网

c++判断一个数是素数,程序解释

答案:4  悬赏:80  手机版
解决时间 2021-01-30 15:07
#include <iostream.h>
#include <math.h>

int main()
{
int i;
int n;
int k;
int p;

cout<<"please enter n:"<<endl;
cin >> n;

k=int(sqrt(double(n)));

for (i=2;i<=k;i++)
{

if (n%i==0)
{
p=0;
break;
}
else
{
p=1;
}
}
if (p)
{
cout << "it's a prime"<<endl;
}
else
{
cout << "it isn't a prime"<<endl;
}
return 0;
}

那个if(p)是什么意思,该程序是怎么判断的??
最佳答案
p是一个标识是否是素数的bool
这个算法并不是最高效的。
{ //求3到200间的素数!!!!!
int a,c,i;
for(a=3;a<=200;a=a+2)
{
for(i=2;i<=a/2;i++)
{
c=a%i;
if(c==0)break;
}
if(i>a/2)
printf("%-5d",a);
}

}
全部回答
素数判别(c语言) int prime(int x) { int m=sqrt(x); for(int i=2;i=m+1)return 1;//是素数 else return 0;//不是素数 }
p应该使用的类型是bool 以true和false来作为标记 这里的p用的是int型的 道理其实是一样的 不过仍然推荐使用bool 开始p=0 即false 为假 如果p=1 即为true 为真 k=int(sqrt(double(n))); for (i=2;i<=k;i++) 关于这个,在数学是有证明的 即一个数从2开始除,如果直到根号下这个数都不能除尽的话 这个数就是素数 在早期计算机编程中 由于硬件性能很差,所有程序的编写的效率十分重要,当然现在也是很有必要的,不过不像以前要求那严格了 比如这个素数的求法 1.按定义的话 求一个数N是否是素数 应当从2开始一直除到N-1 如果N=10000的话,就得循环近10000次 2.所以有人对此进行了改进 即求一个数N是否是素数 从2开始一直除到N/2就可以了 如果N=10000的话,就得循环近5000次 3.有人又做了改进 求一个数N是否是素数 从2开始一直除到sqrt(N),就可以了证明了 如果N=10000的话,循环的次数比前面的算法要少得多 如果对此算法有疑问的话 请到网上搜索相关的数学证明
只要 一个数 n 能被 1至n的平方根之间的任意一个数整除,那么它就不是素数,即 p = 0
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
泉塘畈村怎么去啊,我要去那办事
ZARAOUTLETS(五洲国际店)(五洲店)地址好找么
富源村地址好找么,我有些事要过去
宁便的意思是什么啊?知道的请说下!
△ABC中,已知sinC+cosC=1-sin(C/2) (1)求
1 一字四笔笔笔斜 2 大小二字应俱全 3 闭我宫
紫荆村地址在什么地方,我要处理点事
微商技巧和朋友圈加人诀窍
怎么看大门朝向
松の爱地址在哪,我要去那里办事
【tobe8】hisdrotherisgoingtobe8apolicerohi
淡古的意思是什么啊?知道的请说下!
胡桥村地址有知道的么?有点事想过去
属猴不适合住的楼层如何化解
星际争霸用StarForge怎么编辑刚出来拥有初始
推荐资讯
批毁的意思是什么啊?知道的请说下!
下列哪项不属于生产和工艺流程中产生的有害因
黄山市华惠精细化工有限公司(西北2门)地址好
迈腾后备箱能放下儿童安全座椅吗
参佐的意思是什么啊?知道的请说下!
李治为什么要背叛对武媚娘的感情和贺兰敏月在
许嵩为什么最近不发微博了?
尚地制造地址有知道的么?有点事想过去
单选题Advertising companies are
别人刚发的红包我抢的时候就显示已失效了怎么
【洁白】从文中找出与“洁白如玉”“如”意思
善存什么时候吃效果最好
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?