結果
問題 | No.442 和と積 |
ユーザー |
|
提出日時 | 2016-11-12 13:07:14 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,508 bytes |
コンパイル時間 | 1,413 ms |
コンパイル使用メモリ | 113,160 KB |
実行使用メモリ | 8,448 KB |
最終ジャッジ日時 | 2024-12-23 02:56:53 |
合計ジャッジ時間 | 4,192 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 TLE * 1 |
ソースコード
#define _USE_MATH_DEFINES#include <cstdio>#include <iostream>#include <sstream>#include <fstream>#include <iomanip>#include <algorithm>#include <cmath>#include <complex>#include <string>#include <vector>#include <list>#include <queue>#include <stack>#include <set>#include <map>#include <bitset>#include <numeric>#include <limits>#include <climits>#include <cfloat>#include <functional>#include <iterator>using namespace std;void integerFactorization(long long n, vector<long long>& base, vector<int>& expo){base.clear();expo.clear();long long a = 2;while(a * a <= n){int b = 0;while(n % a == 0){++ b;n /= a;}if(b > 0){base.push_back(a);expo.push_back(b);}++ a;}if(n > 1){base.push_back(n);expo.push_back(1);}}int main(){long long a, b;cin >> a >> b;vector<long long> base;vector<int> expo;map<long long, int> m;integerFactorization(a, base, expo);for(unsigned i=0; i<base.size(); ++i)m[base[i]] += expo[i];integerFactorization(b, base, expo);for(unsigned i=0; i<base.size(); ++i)m[base[i]] += expo[i];integerFactorization(a+b, base, expo);long long ans = 1;for(unsigned i=0; i<base.size(); ++i){int x = min(expo[i], m[base[i]]);while(--x >= 0)ans *= base[i];}cout << ans << endl;return 0;}