回复 9楼 miko54790480
程序代码:#include<stdio.h>
int isprime(int i);
int main()
{
int i,n,m,j,a[305],x1,x2,x3,x4,x5,x6,x7,x8,x9,totle,sum;
scanf("%d,%d",&m,&n);
j=0;
for(i=m;i<=n;i++)
{
if(isprime(i))
{
a[j]=i;j++;
}
}
totle=0;
for(x1=0;x1<j-8;x1++)
{
for(x2=x1+1;x2<j-7;x2++)
{
for(x3=x2+1;x3<j-6;x3++)
{
for(x4=x3+1;x4<j-5;x4++)
{
for(x5=x4+1;x5<j-4;x5++)
{
for(x6=x5+1;x6<j-3;x6++)
{
if(a[x4]+a[x6]>a[x5]*2) break;
if(a[x4]+a[x6]<a[x5]*2) continue;
for(x7=x6+1;x7<j-2;x7++)
{
if(a[x3]+a[x7]>a[x5]*2) break;
if(a[x3]+a[x7]<a[x5]*2) continue;
for(x8=x7+1;x8<j-1;x8++)
{
if(a[x2]+a[x8]>a[x5]*2) break;
if(a[x2]+a[x8]<a[x5]*2) continue;
for(x9=x8+1;x9<j;x9++)
{
if(a[x1]+a[x9]>a[x5]*2) break;
if(a[x1]+a[x9]<a[x5]*2) continue;
else
{
sum=a[x1]+a[x5]+a[x9];
if(a[x1]+a[x6]+a[x8]==sum&&a[x2]+a[x4]+a[x9]==sum)
if(a[x2]+a[x7]+a[x6]==sum&&a[x3]+a[x4]+a[x8]==sum)
totle++;
if(a[x3]+a[x4]+a[x8]==sum&&a[x2]+a[x6]+a[x7]==sum)
if(a[x1]+a[x7]+a[x8]==sum&&a[x3]+a[x9]+a[x2]==sum)
totle++;
}
}
}
}
}
}
}
}
}
}
printf("共%d个素数幻方",totle);
return 0;
}
int isprime(int i)
{
int ok,t;
for(t=2;t<=i/2;t++)
{
if(i%t==0)
{
ok=0;
break;
}
else
ok=1;
}
return ok;
}
不好意思,迟了






