65,186
社区成员




#include <string>
#include <memory>
#include <iostream>
#include <fstream>
using namespace std;
class ARR
{
private:
int n; //数组实际元素个数。
int a[100]; //存放数组元素。
int b[100]; //存放整型数组a中为素数的元素。
int nprime; //存放整型数组a中素数的个数。
public:
/*构造函数,用参数size初始化n,用参数数组x初始化a数组,将nprime初始化为0。*/
ARR( int x[], int size ) :nprime(0),n(size)
{
memset(a,0,sizeof(int)*100);
memset(b,0,sizeof(int)*100);
for (int i=0;i <size;i++)
{
a[i] = x[i];
}
};
// 判断整数x是否为素数,若是素数返回1,否则返回0
int Prime ( int x )
{
for (int i = 2;i < x; i++)
{
if (x%i == 0)
{
return 0;
}
}
return 1;
};
//求整型数组中所有为素数的元素和素数的个数。
void Fun( )
{
for (int i =0;i <n;i++)
{
if (Prime(a[i]))
{
b[nprime] = a[i];
nprime += 1;
}
}
};
void Show(fstream &outfile)
{
for (int i = 0; i <n && i < nprime; i++)
{
cout <<b[i];
outfile<<b[i];
cout <<" ";
if (i % 5 == 0 && i != 0)
{
cout << endl;
outfile<<'\n';
}
}
outfile<<'\n'<<"nprime = " <<nprime<<'\n';
cout << endl << "nprime = " << nprime << endl;
};// 将数组b以每行5个数的形式输出到屏幕上,同时输出数组中素数的个数。
};
int main()
{
int a[] = {13, 14, 15, 16, 17, 18, 19, 20, 21, 22};
ARR at(a,sizeof(a)/sizeof(int));
at.Fun();
fstream outfile("result.txt",fstream::out);
at.Show(outfile);
return 0;
}