如何用c语言编程判断一个数是不是素数?
答案:2 悬赏:40 手机版
解决时间 2021-03-15 00:44
- 提问者网友:自食苦果
- 2021-03-14 15:21
如何用c语言编程判断一个数是不是素数?
最佳答案
- 五星知识达人网友:神也偏爱
- 2021-03-14 16:40
判断素数的方法很多。
以数学方法为例,按照数学规则,如果在2~n-1中存在因子,则n不是素数。否则n为素数。
参考代码如下:
int is_prime(int n)//判断n是否为素数。
{
int i;
for(i = 2; i < n; i ++)//按照数学规则,如果在2~n-1中存在因子,则不是素数。
if(n%i==0)return 0;
return 1;
}在此基础上,可以将判断范围优化为i <= n/2 或i <=sqrt(n)(sqrt为算数平方根函数)。
这样可以减少判断次数,提高效率。
以数学方法为例,按照数学规则,如果在2~n-1中存在因子,则n不是素数。否则n为素数。
参考代码如下:
int is_prime(int n)//判断n是否为素数。
{
int i;
for(i = 2; i < n; i ++)//按照数学规则,如果在2~n-1中存在因子,则不是素数。
if(n%i==0)return 0;
return 1;
}在此基础上,可以将判断范围优化为i <= n/2 或i <=sqrt(n)(sqrt为算数平方根函数)。
这样可以减少判断次数,提高效率。
全部回答
- 1楼网友:底特律间谍
- 2021-03-14 16:49
楼上的那复制来的?我的修改一下#include
int prime(int m)
{int i;
for(i=2;i<=m/2;i++)
if(m%i==0) break;
if(i>m/2) return 1;
else return 0;}
main()
{int m;
scanf("%d",&m);
if(prime(m)&&m>=2) printf("%d是素数",m);
else printf("%d不是素数",m);
}负数、0、 1都不是素数,所以输入它们的时候显示不是素数(素数是从2开始的)
int prime(int m)
{int i;
for(i=2;i<=m/2;i++)
if(m%i==0) break;
if(i>m/2) return 1;
else return 0;}
main()
{int m;
scanf("%d",&m);
if(prime(m)&&m>=2) printf("%d是素数",m);
else printf("%d不是素数",m);
}负数、0、 1都不是素数,所以输入它们的时候显示不是素数(素数是从2开始的)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯