美文网首页
质数筛选

质数筛选

作者: 1墨家巨子 | 来源:发表于2019-10-15 11:24 被阅读0次

    题目:实现一个存储正整数的类,此类中的数据用随机数的方式进行填充。提供的方法包括:打印所有的整数、打印数据中所有的素数、判断某随机位置上的数字是否为素数、删除所有的素数。
    代码:

    #include <iostream>
    using namespace std;
    #include <stdlib.h>
    #include <ctime>
    #include <cmath>
    #include <vector>
    
    class integer{
    private:
      int positive_integer;   //正整数
    public:
      integer():positive_integer(0){}
      integer(int n):positive_integer(n){}
      ~integer();
      void SetInteger(int value);
      int GetInteger();
      int operator = (int value);
     friend ostream & operator << (ostream &out,integer & obj);
    };
    //成员函数声明
    integer::~integer(){}
    void integer::SetInteger(int value){
       positive_integer=value;
    }
    int integer::GetInteger(){
       return positive_integer;
    }
    int integer::operator = (int value){
        positive_integer=value;
    }
    ostream & operator <<(ostream &out,integer & obj){
         out<<obj.positive_integer;
    }
    //在整数中,筛选质数
    bool Prime(int n){
        if(n==1||n==0){
            return false;
        }
        for(int i=2;i<=sqrt(n);i++){      
           if(n%i==0){
            return false;
           }
        }
           return true;
    }
    

    主程序

    int main()
    {
        int len=10;
        vector<integer> de(len);
        srand(time(0));
        for(int i=0;i<10;i++){
            de.at(i)=rand()%20;        //随机生成正整数
        }
        for(vector<integer>::iterator it=de.begin();it!=de.end();it++){
            cout<<*it<<' ';     //输出所有正整数
        }
        cout<<endl;
        for(int i=0;i<de.size();i++){
            if(true==Prime(de[i].GetInteger())){
                cout<<de.at(i)<<endl;    //输出所有质数
            }
        }
        cout << "Hello World!" << endl;
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:质数筛选

          本文链接:https://www.haomeiwen.com/subject/oxojmctx.html