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