zoukankan      html  css  js  c++  java
  • 求素数

    下面代码仅供本人复习所用,实用性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;
    }
    
  • 相关阅读:
    win7 64位安装mongodb及管理工具mongoVUE1.6.9.0
    常见共识算法
    Go语言学习笔记(5)——集合Map
    UPUPW Apache5.5系列本地开发环境配置
    TCP/IP协议
    HTTP协议
    Gossip协议
    《CAP定理》
    比特币双花攻击
    Fabric中的节点类型
  • 原文地址:https://www.cnblogs.com/wxxweb/p/2067185.html
Copyright © 2011-2022 走看看