-
-
[求助]一个输入100个质数的实例;
-
发表于:
2013-5-29 13:22
4522
-
最近在学习C++;
这个例子 是输出100个质数 从 2 3 5 开始;
我花了很常一段时间理解它, 一条一条代码看了N遍;
总算是能理解一点 并能照葫芦画瓢了。
我希望 朋友们有空 发上来其它一些不同形式的求质数个数的例子;
问题大概要这样问:输入从 2,3,5,7,11,开始的100个质数,每5个数一行 每个数间隔 10个空格。
在此附上原实例(以加上我所理想的注释):
#include <iostream> \\载入标准输入输出头文件
#include <iomanip> \\I/O流控制头文件
using std::endl;
using std::setw;
using std::cout;
int main()
{
const int MAX = 100; \\初始化数组元素100个数(常量)
int primes[MAX] = {2,3,5}; \\初始化数组 例举出最开始的3个质数
int count = 3; \\当前数组质数个数
int trial = 5; \\从5开始测试计算质数
int found = 0; \\声明这个变量以便在后面使用
do \\(do-While)循环开始,此循环特性是最少循环一次
{
trial += 2; \\把当前最高质数递增2
for (int i = 0; i<count; i++)
{
found = (trial % *(primes + i)) == 0; \\trial是质found为1 否则把0赋给他
if(found) \\found为0就跳出本循环
break;
}
if(found==0) \\再次检测trial是否为质数
*(primes+count++)=trial; \\如果是质数把他写入数组并且使数组内存地址递增
} while (count<MAX); \\如果计算质数的个数小于MAX就继续计算
for (int i = 0; i<MAX;i++)
{
if(i % 5 == 0) \\输入个数是5的倍数就
cout<<endl; \\换行
cout<<setw(10)<<*(primes+i); \\输入每个数组元素
}
cout<<endl;
return 0 ;
}
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)