质数应该怎么算啊?我看幸运52时,有一题是求103的质数,答案是2和101,但我怎么也想不起质数的算法

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 18:12:58
质数应该怎么算啊?我看幸运52时,有一题是求103的质数,答案是2和101,但我怎么也想不起质数的算法

质数应该怎么算啊?我看幸运52时,有一题是求103的质数,答案是2和101,但我怎么也想不起质数的算法
质数应该怎么算啊?我看幸运52时,有一题是求103的质数,答案是2和101,但我怎么也想不起质数的算法

质数应该怎么算啊?我看幸运52时,有一题是求103的质数,答案是2和101,但我怎么也想不起质数的算法
除了2之外,其他的质数都是单数
两个质数的和是个单数
所以必须有一个质数是双数
所以
另一个质数是103-2=101
这两数分别是2,101

就是2+101=103。并且2和101只能是1*本身,这就叫质数

1、给定任意数n
2、k=n
3、k=k-1
4、k是质数吗(判断质数过程)?如果不是则跳回3.如果是则找到比n小的质数,继续
5、k=k+1
6、k是质数吗(判断质数过程)?如果不是则跳回3.如果是则找到比n大的质数。
7、结束
如何判断一个自然数是否为质数的过程比较简单,不累述。
bool IsPrime(u...

全部展开

1、给定任意数n
2、k=n
3、k=k-1
4、k是质数吗(判断质数过程)?如果不是则跳回3.如果是则找到比n小的质数,继续
5、k=k+1
6、k是质数吗(判断质数过程)?如果不是则跳回3.如果是则找到比n大的质数。
7、结束
如何判断一个自然数是否为质数的过程比较简单,不累述。
bool IsPrime(unsigned int x)
{
if (x<=1) return false;
if (x==2) return true;
if ((x%2) == 0) return false;
int maxf = (int)sqrt(x);
int f=3;
while (f <= maxf) {
if ((x % f) == 0) return false;
f += 2;
}
return true;
}

收起

昨天晚上的节目我也看了,是求两个和为103的质数。我想应该是试出来的吧。
从小的开始考虑,1、2、3、5、7、11、……由和为103再看另一个数是不是质数就可以了

因为103是奇数,所以不能被2 整除。只要把103除以从3开始的每一个质数,一直除到7(即小于根号103的最大质数)这就行了

分解质因数