您的位置:首页 > 编程语言 > C语言/C++

c++ 依次存放在指定范围内求出的所有素数

2017-01-21 21:49 253 查看
#include <iostream>
using namespace std;

class PrimeNUM{
private:
int m_data[25];    // 依次存放在指定范围内求出的所有素数
int m_low,m_high;  // 存放指定的数据范围的下限和上限
int m_num;        // 存放low与high之间的素数个数
public:
PrimeNUM(int low,int high); // 构造函数
int isprime(int x);        // 判断x是否为素数.若是素数,返回1;否则,返回0
void process();            // 求指定范围内的所有素数,把它们依次存放在数组data中,并将求出的素数个数赋给num
void print();              // 输出求出的素数个数及所有素数,每行输出5个素数
};
PrimeNUM::PrimeNUM(int low, int high)
{
m_num = 0;
m_low = low;
m_high = high;
}
int PrimeNUM::isprime(int x)
{
int i = 2;
while(i<x)
{
if(x % i == 0)
{
break;
}
i++;
}
if(x == i)
{
return 1;
}
else
{
return 0;
}

}

void PrimeNUM::process()
{
int i;
int j = 0;
for(i=m_low; i<=m_high; i++)
{
isprime(i);
if(isprime(i) == 1)
{
m_num++;
m_data[j] = i;
j++;
}
}
}

void PrimeNUM::print()
{
cout<<"num="<<m_num<<endl;
int i;
for(i=0; i<m_num; i++)
{
cout<<m_data[i]<<"    ";
if((i+1)%5 == 0)
{
cout<<endl;
}
}
}

int main()
{
PrimeNUM test(100, 150);
int i;
for (i=100; i<=150; i++)
{
test.isprime(i);
}
test.process();
test.print();

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: