闲来无事,找来一道华罗庚数学竞赛题玩玩。
已知质数m、n,满足5m+7n=129,求m+n的值。
/**************************************************************************
**华罗庚数学竞赛题
**已知质数m、n,满足5m+7n=129,
**求m+n的值
**************************************************************************/
#include <stdio.h>
#define const_SUM 129
#define const_NUM1 5
#define const_NUM2 7
#define len 25
#define MAX(a, b) (a)>(b)?(a):(b)
typedef struct SUM
{
unsigned char Ss;
unsigned char Sm;
unsigned char Sn;
}SUM_TYPE;
void main(void)
{
unsigned char m_Max;
unsigned char n_Max;
unsigned char m,n;
unsigned char i = 0;
unsigned char j;
m_Max = const_SUM/const_NUM1;
n_Max = const_SUM/const_NUM2;
SUM_TYPE sum[len] = {0,0,0};
for(m = 0; m < m_Max; m++)
{
for(n = 0; n < n_Max; n++)
{
if (m*const_NUM1 + n*const_NUM2 == const_SUM) //判断等式是否成立
{
sum[i].Ss = m + n;
sum[i].Sm = m;
sum[i].Sn = n;
i++;
}
}
}
for(j = 0; j < i; j++)
{
printf("m = %d,\tn = %d,\tSUM = %d\t\n", sum[j].Sm,sum[j].Sn,sum[j].Ss);
}
}
/********************************end of file*******************************/
质数判断就暂时不做了。