C语言中怎么判断素数

如题所述

楼上说的不错,判断一个数是否是素数就这么算就行。但是楼上程序写的有瑕疵,sqrt不应该写在for里面,而是在for前面赋值,因为sqrt很耗时间。
如果是求类似于1000以内有多少个素数的话,每个素数的判断方式就不是判断是否能整除从2开始到该数的开方,而是判断是否能整除从2开始到该数开方之间的素数。这样效率会高很多。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
从1开始遍历到该数的开方,如果找到一个数能整除该数,证明这不是个素数,看看以下代码

#include<math.h> //头文件为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; //都不能整除返回是
}追问

for (i = 2; i <= sqrt((long double)a); ++i),不明白什么意思

追答

前面说错了,应该是从2开始遍历
for (i = 2; i <= sqrt((long double)a); ++i)
意思就是 i 从2开始循环,一直到a的开方,找能整除a的值

追问

我能加你QQ吗,刚学C语言

追答

平时少上Q,可以在hi上找我,或者在知道向我提问

追问

怎样加你

追答

我hi你了

本回答被提问者采纳
第2个回答  2013-01-10
判定一个数是不是素数,只要判定,从2开始到该数的开方,遍历,看是否能整除,
能则不是素数,不能则是素数
第3个回答  2018-01-05

介绍三种使用C语言来判断素数的方法,以及用做素数表来判断找素数的方法。

第4个回答  2020-02-19
相似回答