結果
問題 |
No.1611 Minimum Multiple with Double Divisors
|
ユーザー |
|
提出日時 | 2021-07-21 21:45:21 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 838 bytes |
コンパイル時間 | 1,512 ms |
コンパイル使用メモリ | 169,232 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-07-17 17:17:28 |
合計ジャッジ時間 | 7,392 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 9 WA * 28 |
ソースコード
// #include <bits/stdc++.h> using namespace std; #define fi first #define se second #define all(x) x.begin(), x.end() #define lch (o << 1) #define rch (o << 1 | 1) typedef double db; typedef long long ll; typedef unsigned int ui; typedef pair<int, int> pint; typedef tuple<int, int, int> tint; const int INF = 0x3f3f3f3f; const ll INF_LL = 0x3f3f3f3f3f3f3f3f; vector<int> divs = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37}; void solve() { ll n; cin >> n; ll ans = INF_LL; for (auto d: divs) { int cnt = 0; ll x = n; while (x % d == 0) { x /= d; cnt++; } double est = 1.0 * n * pow(d, cnt + 1); if (est > INF_LL) continue; x = n; cnt++; while (cnt--) x *= d; ans = min(ans, x); } cout << ans << endl; } int main() { ios::sync_with_stdio(0); int t; cin >> t; while (t--) solve(); return 0; }