結果
問題 | No.1063 ルートの計算 / Sqrt Calculation |
ユーザー | Haar |
提出日時 | 2020-05-29 21:26:09 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 33 ms / 2,000 ms |
コード長 | 718 bytes |
コンパイル時間 | 2,286 ms |
コンパイル使用メモリ | 197,152 KB |
最終ジャッジ日時 | 2025-01-10 16:29:09 |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 14 |
ソースコード
#include <bits/stdc++.h> /** * @title 素因数分解 * @docs prime_factorize.md */ auto prime_factorize(int64_t n){ std::vector<std::pair<int64_t,int64_t>> ret; for(int64_t i = 2LL; i * i <= n; ++i){ if(n % i == 0){ int64_t c = 0; while(n % i == 0){ n /= i; ++c; } ret.emplace_back(i, c); } } if(n != 1) ret.emplace_back(n, 1); return ret; } int main(){ int N; while(std::cin >> N){ auto res = prime_factorize(N); int a = 1, b = 1; for(auto [x, c] : res){ for(int i = 0; i < c/2; ++i){ a *= x; } if(c % 2 == 1){ b *= x; } } std::cout << a << " " << b << "\n"; } return 0; }