不好意思,我是个c语言新手,前两天布置一道题,是这样的:
求两个自然数,和为667,其最小公倍数除以最大公约数的商为120。打印所有符合要求的自然数。
我得程序是这样的:
#include "stdio.h"
main()
{
int a,b,i,t;
for(a=1,b=667-a;a<334;a++)
{for(i=1;i<=a;i++)
if(a%i==0&&b%i==0) t=i;
}
if(a*b/t/t==120)
printf("%d\t%d\n",a,b);
}
我想因为最小公倍数是两数之积除以最大公约数,所以可以写成a*b/t/t。我想来想去不知哪里错了,请大家指点。(新手,如果出现比较愚蠢的错误,见笑了!)
求两个自然数,和为667,其最小公倍数除以最大公约数的商为120。打印所有符合要求的自然数。
我得程序是这样的:
#include "stdio.h"
main()
{
int a,b,i,t;
for(a=1,b=667-a;a<334;a++)
{for(i=1;i<=a;i++)
if(a%i==0&&b%i==0) t=i;
}
if(a*b/t/t==120)
printf("%d\t%d\n",a,b);
}
我想因为最小公倍数是两数之积除以最大公约数,所以可以写成a*b/t/t。我想来想去不知哪里错了,请大家指点。(新手,如果出现比较愚蠢的错误,见笑了!)