#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;
}

求素数为什么会有1问题在哪?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 惜日短 2022-06-14 08:42关注
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
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报