求素数

下面代码仅供本人复习所用,实用性N低,各位飘过吧~~哈哈:>

//
// 求素数.
//
 
#include <cstdlib>
#include <cmath>
#include <iostream>
#include <vector>
#include <iomanip>
 
typedef std::vector<unsigned long> Primer;
 
//
// 将 range 范围内的素数保存到向量 primer 中.
// 当一个数除以 2 直到到它的平方根时都没有整除,则该数为素数.
//
void getPrimer(Primer &primer, const unsigned long range)
{
    bool isPrimer = false;
    double square_root;
     
    for (unsigned long i = 2, j; i <= range; ++i)
    {
        isPrimer = true;
        square_root = sqrt(i);
        for (j = 2; j <= square_root; ++j)
        {
            if (0 == i % j) {
                isPrimer = false;
                break;
            }
        }
        if (true == isPrimer) {
            primer.push_back(i);
        }
    }
}
 
//
// 测试.
//
int main(void)
{
    unsigned long range;
    Primer primer;
     
    std::cout << "Please input primer solving range: ";
    while (!(std::cin >> range)) {
        std::cout << "Input wrong, input again: ";
    }
     
    getPrimer(primer, range);
     
    Primer::iterator beg = primer.begin();
    Primer::iterator end = primer.end();
    while (beg != end) {
        std::cout << *beg++ << " ";
    }
    std::cout << std::endl;
     
    return EXIT_SUCCESS;
}
posted @   Atypiape  阅读(217)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示