>>453 #include <stdio.h> #define N 10 int get_gcd( int m, int n ) { return ( m < n ) ? get_gcd( n, m ) : ( n == 0 ) ? m : ( m % n == 0 ) ? n : get_gcd( n, m % n ); } int get_lcm( int m, int n ) { return ( m == 0 || n == 0) ? 0 : m * n / get_gcd( m, n ); } int main( int argc, char ** args ) { int nums[ N ] = {0}, i, l, gcd, lcm; puts( "input numbers. " ); for ( i = 0; i < N; ++i ) { scanf( "%d", &nums[ i ] ); if ( nums[ i ] < 1 ) { break ; } } l = i; gcd = lcm = nums[ 0 ]; for ( i = 1; i < l; ++i ) { gcd = get_gcd( gcd, nums[ i ] ); lcm = get_lcm( lcm, nums[ i ] ); } for ( i = 0; i < l; ++i ) { printf( "%d ", nums[ i ] ); } printf( "\nLCM:%d, GCD:%d\n", lcm, gcd ); return 0; } 10個入れるか,0以下の数を入れるかで入力をやめるようにしてみた