求数组a中所有素数的和(用函数实现)

2025-03-21 13:51:13
推荐回答(2个)
回答1:

#include
//判断是否是素数 返回0表示不是素数,1表示是素数
int isSushu(int n)
{
if(n<=1)
return 0;
int i;
for(i=2;i {
if(n%i == 0)
return 0;
}
return 1;
}
int main()
{
int a[5] = {1,2,3,4,5};
int i;
int sum=0;
for(i=0;i<5;++i)
{
if(isSushu(a[i]))
sum += a[i];
}
printf("sum=%d",sum);
return 0;
}

回答2:

C++版的
#include
#include
struct Sum
{
Sum(int& n):max(n)
{
max = 0;
}
bool isPrime(int n)
{
int a = 2;
while (a<=n)
if (!(n%a++)) break;
if(a == n+1 && n != 1) return true;
return false;
}
bool operator()(int value)
{
if(isPrime(value))
max += value;
}
int& max;
};
int main(int argc, char* argv[])
{
int a[9];
int size = sizeof(a)/sizeof(a[0]);
for(int i = 0; i < size; i++)
{
a[i] = i+1;
}
int sum;
std::for_each(a, a + size, Sum(sum));
std::cout< return 0;
}