hdoj2028 Lowest Common Multiple Plus
1385 ワード
Problem Description
n個数の最小公倍数を求める.
Input
入力には複数のテストインスタンスが含まれ、各テストインスタンスの開始は正の整数nであり、次いでnの正の整数である.
Output
各テスト・データのセットに対して最小公倍数を出力し、各テスト・インスタンスの出力は1行を占めます.最後の出力は32ビットの整数だと仮定できます.
Sample Input
Sample Output
コード:
#include int main() { __int64 n,a[1000]; while(scanf("%I64d",&n)!=EOF) { a[0]=1; for(int i=1;i<=n;i++) { scanf("%I64d",&a[i]); if(a[i]>a[i-1]) { for(int j=1;;j++) { if((a[i-1]*j)%a[i]==0) { a[i]=a[i-1]*j; break; } } } else { for(int j=1;;j++) { if((a[i]*j)%a[i-1]==0) { a[i]=a[i]*j; break; } } } } printf("%I64d",a[n]); } return 0; }
考え方:
小さい数でずっとforサイクルに乗って最初から、大きい数を割り切ることができることを知って答えを得ました
n個数の最小公倍数を求める.
Input
入力には複数のテストインスタンスが含まれ、各テストインスタンスの開始は正の整数nであり、次いでnの正の整数である.
Output
各テスト・データのセットに対して最小公倍数を出力し、各テスト・インスタンスの出力は1行を占めます.最後の出力は32ビットの整数だと仮定できます.
Sample Input
2 4 6
3 2 5 7
Sample Output
12
70
コード:
#include
考え方:
小さい数でずっとforサイクルに乗って最初から、大きい数を割り切ることができることを知って答えを得ました