結果

問題 No.1611 Minimum Multiple with Double Divisors
ユーザー nikkukun
提出日時 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
権限があれば一括ダウンロードができます

ソースコード

diff #

//
#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;
}
0