作者在 2010-12-26 21:32:29 发布以下内容
#include<stdio.h>
#include<math.h>
void init();
void printresult();
void search(int);
int isprime(int);
void swap(int,int);
a[11];
void main()
{
init();
search(2);
}
void init()
{
int i;
for(i=1;i<=10;i++)
a[i]=i;
}
int isprime(int m)
{
int i;
for(i=2;i<=sqrt(m);i++)
if(m%i==0)
return 0;
return 1;
}
void printresult()
{
int i;
for(i=1;i<=10;++i)
printf("%3d",a[i]);
printf("\n");
}
void swap(int i,int j)
{
int temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
void search(int m)
{
int i;
if(m>10)
{
if(isprime(a[1]+a[10]))
printresult();
}
else
{
for(i=m;i<=10;++i)
{
swap(m,i);
if(isprime(a[m]+a[m-1]))
search(m+1);
swap(m,i);
}
}
}
#include<math.h>
void init();
void printresult();
void search(int);
int isprime(int);
void swap(int,int);
a[11];
void main()
{
init();
search(2);
}
void init()
{
int i;
for(i=1;i<=10;i++)
a[i]=i;
}
int isprime(int m)
{
int i;
for(i=2;i<=sqrt(m);i++)
if(m%i==0)
return 0;
return 1;
}
void printresult()
{
int i;
for(i=1;i<=10;++i)
printf("%3d",a[i]);
printf("\n");
}
void swap(int i,int j)
{
int temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
void search(int m)
{
int i;
if(m>10)
{
if(isprime(a[1]+a[10]))
printresult();
}
else
{
for(i=m;i<=10;++i)
{
swap(m,i);
if(isprime(a[m]+a[m-1]))
search(m+1);
swap(m,i);
}
}
}