本帖最后由 蒟蒻 于 2022-9-2 18:33 编辑
------------------------------事先说明------------------------------
题目:计算出1~10000内最大的素数。计算方法不限,建议使用:梅森素数计算法,舒尔算法,循环法,埃氏筛,等方法。推荐使用多线程或多进程,要求在计算之后打印出计算的总时间。
我在写完后也看了看其他人写的,发现我的代码和Skystars的也太像了。但是,我真的没抄,真是我自己写的qwq
至于计时嘛。。。居然是0ms(果然,C++运行效率就是高
--------------------------------源码---------------------------------
[C++] 纯文本查看 复制代码 #include <iostream>
bool isPrime(int num) {
if (num == 2) //2是质数
return true;
for (int i = 2; i < num; i++)
if (num % i == 0)
return false; //被非1和非自己整除不是质数
return true;//不满足以上条件返回true
}
int main()
{
for (int j = 9999; j > 2; j -= 2) //奇数-偶数=奇数,质数(2除外)都是奇数
if (isPrime(j) == true) { //如果不满足isPrime函数的要求,则不是质数,双重判断
printf("The biggest prime number in 10000 is %d\n", j);
break; //退出循环,否则会一直打印质数
}
}
输出:The biggest prime number in 10000 is 9973
@xiaomeng242
|