标签:long 记录 int div scan main print void 一个
#include <stdio.h>
#include <math.h>
void main()
{ int i,j,k,i2,j2,k2,n,s,t,w,z,max,p[9000],q[1500];
long m;
printf(" 请输入整数n: ");
scanf("%d",&n);
for(i=3;i<=3*n;i=i+2)
{ t=1;z=(int)sqrt(i);
for(j=3;j<=z;j=j+2)
if(i%j==0) {t=0;break;}
if(t==1) p[i]=1; // 奇数i为素数时标记p[i]=1
}
w=0;
for(i=3;i<=n;i=i+2)
if(p[i]==1)
{w++;q[w]=i;} // 共w个不大于n的奇素数赋给q数组
m=0; max=0;
for(i=1;i<=w-2;i++) // 设置三重循环枚举所有三个素数组
for(j=i+1;j<=w-1;j++)
for(k=j+1;k<=w;k++)
{ s=q[i]+q[j]+q[k]; // 统计3个素数之和s
if(p[s]==1)
{ m++; // 统计全素组个数
if(s>max) // 比较并记录最大全素组
{max=s;i2=q[i];j2=q[j];k2=q[k];}
}
}
printf(" 共有%ld个全素组; \n",m);
if(m>0)
printf(" 一个最大全素组为:%d+%d+%d=%ld\n",i2,j2,k2,max);
}
标签:long 记录 int div scan main print void 一个
原文地址:http://www.cnblogs.com/lls1350767625/p/7862579.html