#include <iostream>
using namespace std;
class Array
{
private:
int* p, k;
float s;
public:
Array(int* ptr, int n);
bool fun(int n);
void sum();
void show();
~Array();
};
Array::Array(int* ptr, int n)
{
p = new int[n];
k = n;
for (int i = 0; i < k; i++)
{
p[i] = ptr[i];
}
}
bool Array::fun(int n)
{
bool flag = true;
for (int i = 2; i < n; i++)
{
if (n % i == 0)
{
flag = false;
break;
}
}
return flag;
}
void Array::sum()
{
int sum = 0;
for (int i = 0; i < k; i++)
{
if (fun(p[i])==1)
{
sum = sum + p[i];
}
}
s = sum / k;
}
void Array::show()
{
int pn = 0;
for (int i = 0; i < 9; i++)
{
if (fun(p[i]))
{
pn++;
cout << p[i] << '\t';
if (pn % 5 == 0)
{
cout << endl;
}
}
}
if (pn % 5)cout << endl;
}
Array::~Array()
{
delete[]p;
}
int main()
{
int a[9] = { 5,2,7,4,8,23,65,1,40 };
Array arr(a, sizeof(a)/sizeof(a[0]));
arr.sum();
arr.show();
system("pause");
return 0;
}
bool Array::fun(int n)
{
bool flag = true;
for (int i = 2; i < n; i++)
{
if (n % i == 0)
{
flag = false;
break;
}
}
return flag;
}
n值为1时,没进入循环,flag为true
1没有参与素数判断
bool Array::fun(int n)
{
if(n==1)return false;
//bool flag = true;
for (int i = 2; i < n ; i++)
{
if (n % i == 0)
{
//flag = false;
//break;
return false;
}
}
//return flag;
return true;
}