永发信息网

C语言中怎么判断素数

答案:3  悬赏:0  手机版
解决时间 2021-02-24 07:07
C语言中怎么判断素数
最佳答案
从1开始遍历到该数的开方,如果找到一个数能整除该数,证明这不是个素数,看看以下代码

#include //头文件为math.h
int isprime(int a)
{
int i;
for (i = 2; i <= sqrt((long double)a); ++i)
{
if (a % i == 0)
{
return 0; //能整除就返回不是
}
}
return 1; //都不能整除返回是
}
全部回答
 代码如下: #include <stdio.h> #include <conio.h> void main() {  long m,n=2;  double l;  printf("please input an number: \n");  scanf("%d",&m);  for(n=2;n<=m;n++)  //这里设置n<=m,是要将2到输入值之间所有的数拿来整除m  {   l=m%n;  if(l==0)  //这里,得到余数为0的时候   break;  //跳出循环  }  if(n<m) //如果被除数n小于输入值m,那么m肯定有除了1和本身外别的约数,所以下面不是素数   printf("不是素数\n");   else  //另外的,如果n不小于m,那只有可能等于m,那么m就不会有别的约数   printf("是素数\n");   getch(); } 首先要清楚什么是素数,素数就是只能被1和自己整除的数字,那么: 我的思路是,首先定义一个变量m存储你输入的数值,然后,从2开始到m依次去作为m的除数,如果在这个过程中有一个数字l能整除m,那么跳出循环,跳出之后判断l是否等于m,如果不等于,那么不是素数,如果相等那么是素数
楼上说的不错,判断一个数是否是素数就这么算就行。但是楼上程序写的有瑕疵,sqrt不应该写在for里面,而是在for前面赋值,因为sqrt很耗时间。 如果是求类似于1000以内有多少个素数的话,每个素数的判断方式就不是判断是否能整除从2开始到该数的开方,而是判断是否能整除从2开始到该数开方之间的素数。这样效率会高很多。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
2015年郸城中考考生成绩排名前5000名
英雄联盟亚索怎么玩?要多久才能练好?
余额宝提现至银行卡要多久
开小汽车上路,一般查车的都查什么
16岁女生读高一身高只有156怎样才能长高啊?
手机充电器为2A,充电五分钟,可以充20%的电
【老张的哲学】《老张的哲学》读后感王平
迎宾园地址在哪,我要去那里办事
转学好转吗
倩女幽魂绛雪与元霜 100层boss怎么打
黑龙江出入境检验检疫局检验检疫技术中心佳木
从廊坊汽车站到大城县广安李庄子怎么去
16进制输出问题
如何使ipad不显示“无SIM”
lol民王丶是谁,是不是小漠国服第一小法师?
推荐资讯
海港区妇幼保健站地址在哪,我要去那里办事
三星笔记本 R458 从XP系统上 装WIN7 64位系统
摩托车启动线接触不良怎么修?一开钥匙全车有
【vivibear】vivibear怎么读
杭州野生动物园在哪里
蒂米雪茶饮(文化宫店)在哪里啊,我有事要去这
中国烟草yxyc是哪里的烟
【电子数怎么算】一个分子的电子总数怎么算
阳光意家人宾馆人民路店这个地址在什么地方,
钢筋的焊接分为哪几种?
关于maximum这个单词的词性.刚刚看到一个句子
形容快乐的时光总是过得很快的句子 高大上一
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?