結果
問題 |
No.889 素数!
|
ユーザー |
![]() |
提出日時 | 2019-09-20 23:31:56 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,061 bytes |
コンパイル時間 | 1,506 ms |
コンパイル使用メモリ | 167,896 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-14 20:22:13 |
合計ジャッジ時間 | 3,094 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 61 |
ソースコード
// exec clang-format #include <bits/stdc++.h> #define rep(i, n) for (lli i = 0; i < (n); i++) #define rrep(i, n) for (lli i = (n)-1; i >= 0; i--) using namespace std; using lli = long long int; lli prime_sum(lli u) { lli ans = 0; for (lli i = 1; i * i <= u; i++) { if (u % i == 0) { ans += i + u / i; if (i * i == u) ans -= i; } } return ans; } bool is_p(int u) { if (u <= 1) return false; for (int i = 2; i < u; i++) { if (u % i == 0) return false; } return true; } bool is_s(int u) { for (int i = 2; i < u; i++) { if (i * i == u) return true; } return false; } bool is_r(int u) { for (int i = 2; i < u; i++) { if (i * i * i == u) return true; } return false; } bool is_per(int u) { return prime_sum(u) == u + u; } int main() { int n; cin >> n; if (is_p(n)) cout << "Sosu!"; else if (is_s(n)) cout << "Heihosu!"; else if (is_r(n)) cout << "Ripposu!"; else if (is_per(n) && n != 0) cout << "Kanzensu!"; else cout << n; cout << endl; }