o(∩_∩)o 哈哈
路过[ 本帖最后由 孤单旋律 于 2010-11-4 14:08 编辑 ]
程序代码:#include "stdafx.h"
#include "math.h"
#define for if(0){}else for
int g_count = 0;
int g_sum = 0;
int main(int argc, char* argv[])
{
int nFunPrime(int , int);
nFunPrime(1, 100); //修改开始元素 m n
printf("\r\n一共有%d 素数\r\n", g_count);
printf("素数的和为 : %d \r\n", g_sum);
return 0;
}
int nFunPrime(int PrimeStart, int PrimeEnd)
{
int PrimeNumber;
int ntime = 3;
for (PrimeNumber = PrimeStart; PrimeNumber <= PrimeEnd; PrimeNumber++)
{
if (PrimeNumber == 1 || PrimeNumber == 2 || PrimeNumber == 3)//特殊情况
{
g_count++; //我定义的全局来接受个数
g_sum += PrimeNumber; //素数累加和
printf("%-3d", PrimeNumber);
continue;
}
for (int i = 2; i <= (int)sqrt(PrimeNumber); i++)
{
if (PrimeNumber % i == 0)
{
break;
}
if (i >= (int)sqrt(PrimeNumber))
{
g_count++; //我定义的全局来接受个数
g_sum += PrimeNumber; //素数累加和
printf("%-3d", PrimeNumber);
ntime++;
if (ntime % 10 ==0)
{
printf("\r\n");
}
}
}
}
return 0;
}
我刚写的,应该可以.