#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int Judge(int m);
void Guess(int x,int *p,int *q);
int main()
{
int a,b,c,test;
for(int i = 0;i<10;i++)
{
srand(time(NULL));
test = ((i+1)*(rand()%100)+1);//随机产生一个奇数
Guess(test,&a,&b);//将x的值分为a,b,c进行验证
c = test-a-b;
printf("%d可分为%d+%d+%d\n",test,a,b,c);
}
return 0;
}
void Guess(int x,int *p,int *q)
{
for(int i=1;i<=x/2;i++)
{
for(int j=i;j<=x/2;j++)
{
if(Judge(i) == 1&&Judge(j) == 1&&Judge(x-i-j) == 1)//此时a,b,c之和为x且a,b,c都为素数。
{
*p = i;
*q = j;
}
}
}
}
int Judge(int m)//素数判定程序
{
if(m == 1)//1也是素数
return 1;
for(int i=2;i<m;i++)
{
if(m%i == 0)//m不是素数
{
return -1;
}
}
return 1;//m是素数
}