#include
#include
int isSuShu(int i) //判断是否为素数
{
int n,m;
m = sqrt(i);
for(n=2; n<=m; n++)
{
if(i%n == 0)
break;
}
if(n>=m+1) return 1;
else return 0;
}
int main()
{
int x,i,k;
printf("请输入任一大于2的偶数:");
scanf("%d", &x);
for(i=2; i<=x/2; i++)
{
if(isSuShu(i) == 1)
{
k = x-i;
if(isSuShu(k) == 1)
{
printf("\t%d可以为素数%d、%d的和\n", x, i, k);
}
}
}
return 0;
}
这是我写的“任一大于2的偶数都可表示为两个素数之和”
你再添加个循环2~21内运行就行了。
#include "stdio.h"
// 判断x是否为素数
int isSuShu(int x) {
int i;
if (x == 2)
return 1;
if (x == 1 || x % 2 == 0)
return 0;
for (i = 3; i * i <= x; i += 2) {
if (x % i == 0)
return 0;
}
return 1;
}
void main()
{
for (int x=1; x<21; x++)
{
for (int y=1; y<21; y++)
{
if ( isSuShu(x) && isSuShu(y) )
{
if (x+y<=21)
{
printf("x = %2d, y = %2d时,x + y = %2d <= 21\n", x, y, x+y);
}
}
}
}
}