結果
| 問題 | 
                            No.889 素数!
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2022-09-27 01:50:39 | 
| 言語 | C++17  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 28 ms / 2,000 ms | 
| コード長 | 709 bytes | 
| コンパイル時間 | 1,828 ms | 
| コンパイル使用メモリ | 195,648 KB | 
| 最終ジャッジ日時 | 2025-02-07 16:39:59 | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 61 | 
ソースコード
#include <bits/stdc++.h>
#define rep(i,n) for(int i = 0; i < (n); i++)
using namespace std;
typedef long long ll;
bool isPrime(int n){
   if (n < 2) return 0;
   if (n == 2) return 1;
   if (n % 2 == 0) return 0;
   double nn = sqrt(n);
   for (int i=3;i<=nn;i+= 2)if(n % i == 0)return 0;
   return 1;
}
int main(){
    cin.tie(0);
    ios::sync_with_stdio(0);
    
    int N; cin >> N;
    auto f = [&]() {
        if(isPrime(N)) return "Sosu!"s;
        for(int i = 2; i <= N; i++) {
            if(i * i == N) return "Heihosu!"s;
            if(i * i * i == N) return "Ripposu!"s;
        }
        if(N == 6 || N == 28) return "Kanzensu!"s;
        return to_string(N);
    };
    cout << f() << endl;
}