精進記録 ABC070C
ABC070Cです。10e18オーダーの入力があるのでlong longで組みましたが、最初はそれでもオーバーフロー。a*b/gcd(a,b) としていたのを a/gcd(a,b)*b に変えることでACしました。なるべく自分で1からコードを書けるように、との思いからライブラリの使用をなるべくしないで来ましたが、身についた部分については、積極的にライブらるを使っていきたいと思います。今回もgcdのライブラリ(ユークリッド互除法によるもの)を使いました。githubでのライブラリの整備も進めていきます。#include <bits/stdc++.h>using namespace std;long long gcd(long long a, long long b) { if(a < b) return gcd(b, a); long long r; while ((r=a%b)) { a = b; b = r; } return b;}long long lcm(long long a,long long b){ return a/gcd(a,b)*b;} int main(){ int N; cin>>N; long long a[N]; long long templcm=1; for (int i=0;i<N;i++){ cin>>a[i]; templcm=lcm(templcm,a[i]); } cout<<setprecision(20)<<templcm<<endl; return 0;}