135x+248y+185z=8432
使135x0+248y0=8432,z0=0
(135,248)→(135,113)→(22,113)→(22,3)→(1,3)
用扩展欧几里得算法得
3=6(248)-11(135),1=-43(248)+79(135)
x0=79(8432)=0(rem248),y0=-43(8432)=34(rem135)
此不定方程的通解为
x=248a+185b
y=34-135a+185c
z=-135b-248c
不过要从这里手算出自然数解的话更麻烦
用c++即可求出真实数据
(x,y,z)=(0,34,0),(7,19,15),(14,4,30),(17,24,1),(24,9,16),(34,14,2),(51,4,3)
#include<stdio.h>
#include<math.h>
int main()
{
int x,y,z;
for(x=0;x<=100;x++)for(y=0;y<=100;y++)for(z=0;z<=100;z++)
if(135*x+248*y+185*z==8432)printf("x=%d,y=%d,z=%d\n",x,y,z);
} |