[AtCoder] ARC 106 A – 106
問題
方針
指数の発散は早いので、\( A, B \) を全探索します。また、オーバーフローに注意します。
コード
#include <bits/stdc++.h> using namespace std; typedef long long ll; // 累乗 ll my_pow(ll x, ll n) { if (n == 0) return 1; if (n % 2 == 0) return my_pow(x * x, n / 2); return x * my_pow(x, n - 1); } int main() { ll N; cin >> N; for (int i = 1; i < 100; i++) { ll k = my_pow(3, i); if (k > N) break; for (int j = 1; j < 100; j++) { ll s = my_pow(5, j); if (s > N) break; if (N == k + s) { cout << i << " " << j << "\n"; return 0; } } } cout << "-1\n"; return 0; }
ディスカッション
コメント一覧
まだ、コメントがありません