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

如题所述

第1个回答  2014-03-13
#include<stdio.h>
//判断是否是素数 返回0表示不是素数,1表示是素数
int isSushu(int n)
{
if(n<=1)
return 0;
int i;
for(i=2;i<n;++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个回答  2014-03-13
C++版的
#include<iostream>
#include<algorithm>
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<<sum<<std::endl;
return 0;
}

相似回答