华罗庚数学竞赛

闲来无事,找来一道华罗庚数学竞赛题玩玩。

已知质数m、n,满足5m+7n=129,求m+n的值。

/**************************************************************************

**华罗庚数学竞赛题

**已知质数m、n,满足5m+7n=129,

**求m+n的值

**************************************************************************/

#include 

 

#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*******************************/

华罗庚数学竞赛_第1张图片

质数判断就暂时不做了。

 

你可能感兴趣的:(笔记)