知恵袋の1次不定方程式の整数解の問題をJavaで解いてみた。

 知恵袋の1次不定方程式の整数解の問題をJavaで解いてみました。

13x-7y=200を満たす整数(x,y)のうち|x|+|y|を最小にする値を求めよ

 2組答えがあるようなので、ちょっと手抜きになってしまいました。(^_^;

● DiophantineEqu1.java

/* 
 * DiophantineEqu1.java
 */

class DiophantineEqu1 {

    public static void main(String[] args){
        for(int x=-200; x<=200; x++){
            for(int y=-200; y<=200; y++){
                int z = Math.abs(x)+Math.abs(y);
                if(13*x-7*y==200){
                    System.out.printf("(x,y)=(%4d,%4d); |x|+|y|=%4d\n",x,y,z);
                }
            }
        }
    }
}

●実行結果

(x,y)=( -88,-192); |x|+|y|= 280
(x,y)=( -81,-179); |x|+|y|= 260
(x,y)=( -74,-166); |x|+|y|= 240
(x,y)=( -67,-153); |x|+|y|= 220
(x,y)=( -60,-140); |x|+|y|= 200
(x,y)=( -53,-127); |x|+|y|= 180
(x,y)=( -46,-114); |x|+|y|= 160
(x,y)=( -39,-101); |x|+|y|= 140
(x,y)=( -32, -88); |x|+|y|= 120
(x,y)=( -25, -75); |x|+|y|= 100
(x,y)=( -18, -62); |x|+|y|=  80
(x,y)=( -11, -49); |x|+|y|=  60
(x,y)=(  -4, -36); |x|+|y|=  40
(x,y)=(   3, -23); |x|+|y|=  26
(x,y)=(  10, -10); |x|+|y|=  20
(x,y)=(  17,   3); |x|+|y|=  20
(x,y)=(  24,  16); |x|+|y|=  40
(x,y)=(  31,  29); |x|+|y|=  60
(x,y)=(  38,  42); |x|+|y|=  80
(x,y)=(  45,  55); |x|+|y|= 100
(x,y)=(  52,  68); |x|+|y|= 120
(x,y)=(  59,  81); |x|+|y|= 140
(x,y)=(  66,  94); |x|+|y|= 160
(x,y)=(  73, 107); |x|+|y|= 180
(x,y)=(  80, 120); |x|+|y|= 200
(x,y)=(  87, 133); |x|+|y|= 220
(x,y)=(  94, 146); |x|+|y|= 240
(x,y)=( 101, 159); |x|+|y|= 260
(x,y)=( 108, 172); |x|+|y|= 280
(x,y)=( 115, 185); |x|+|y|= 300
(x,y)=( 122, 198); |x|+|y|= 320

※参考URL
ディオファントス方程式
ディオファントス方程式の質問を十進BASICで解いてみた。
質問の一次不定方程式の一組の整数解をPythonで求めてみた。