(2) JIS Full BASIC 言語による、 最大公約数を求めるプログラム 100 INPUT PROMPT "最大公約数を求めます。自然数を入力してください。": X 110 INPUT PROMPT "次に、もう1つ自然数を入力してください。": Y 120 IF X=Y THEN GOTO 220 ! X を Y で割った余りを求めようとしている 240 LET X=Y 250 LET Y=R ! 順列 ( X の値, Y の値 ) を ( Y の値, R の値 ) で置き換えた 260 GOTO 170 270 END (3) ANSI/ISO/JIS規格 C言語による、 最大公約数を求めるプログラム #include int gcd ( int x, int y ); int main ( ) { int x, y; int num; printf ("最大公約数を求めます。\n"); printf ("自然数を入力してください。"); scanf ("%d", &x ); printf ("次の自然数を入力してください。"); scanf ("%d", &y ); num = gcd ( x, y ); printf ("%d と %d の最大公約数は %d です。\n", x, y, num); return 0; } // 最大公約数を求める関数 int gcd ( int x, int y ) { int r; while ( ( r = x % y ) != 0 ) // % は余りを出力する。 0 になるまでは繰り返す { x = y; y = r; } return y; // 何回かループして、 最後にたどりついた y の値が、最大公約数 } (4) JIS Full BASIC 言語による、 最小公倍数を求めるプログラム 100 INPUT PROMPT "最小公倍数を求めます。自然数を入力してください。": X 110 INPUT PROMPT "次に、もう1つ自然数を入力してください。": Y 120 IF X=Y THEN GOTO 220 240 LET X=Y 250 LET Y=R 260 GOTO 170 270 END (5) ANSI/ISO/JIS規格 C言語による、 最小公倍数を求めるプログラム #include int lcm ( int x, int y ); int gcd ( int x, int y ); int main ( ) { int x, y; int num; printf ("最小公倍数を求めます。\n"); printf ("自然数を入力してください。"); scanf ("%d", &x ); printf ("次の自然数を入力してください。"); scanf ("%d", &y ); num = lcm( x, y ); printf ("%d と %d の最小公倍数は %d です。\n", x, y, num); return 0; } // 最小公倍数を求める関数 int lcm ( int x, int y ) { return ( x * y / gcd ( x, y ) ); } // 最大公約数を求める関数 int gcd ( int x, int y ) { int r; while ( ( r = x % y ) != 0 ) { x = y; y = r; } return y; }