Quantcast
Channel: 看雪安全论坛
Viewing all articles
Browse latest Browse all 9556

【求助】一个输入100个质数的实例;

$
0
0
最近在学习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 ;
}


Viewing all articles
Browse latest Browse all 9556

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>