アルゴリズムは最も一般的でない倍数に注意します

アイデア

  • 数値を入力するたびに、現在の最も一般的でない倍数と既存の最も一般的でない倍数を見つけます
  • 入力された最初の数字の最も一般的でない倍数はそれ自体です
  • 最小共通倍数=(a /最大共通除数)* b
  • オーバーフローを避けるために、a * b / greatest commondivisorを使用しないように注意してください

コード

#include <stdio.h>
#include <iostream>
using namespace std;

int gcd(int a,int b){
    
    
    if(b==0)
        return a;
    else
        return gcd(b,a%b);
}

int main(){
    
    
    int n=0;
    while(scanf("%d",&n)!=EOF){
    
    
        while(n--){
    
    
            int m=0;
            scanf("%d",&m);
            int a=0,b=0;
            for(int i=0;i<m;i++){
    
    
                if(i==0){
    
    
                    scanf("%d",&a);
                    continue;
                }
                else{
    
    
                    scanf("%d",&b);
                    int gcdab=gcd(a,b);
                    a=a/gcdab*b;//避免溢出
                    continue;
                }
            }
            printf("%d\n",a);
        }
    }
    return 0;
}

おすすめ

転載: blog.csdn.net/Cindy_00/article/details/108690377