結果
問題 | No.889 素数! |
ユーザー |
|
提出日時 | 2019-09-20 21:41:15 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 1,390 bytes |
コンパイル時間 | 831 ms |
コンパイル使用メモリ | 80,632 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-14 16:58:01 |
合計ジャッジ時間 | 2,288 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 61 |
ソースコード
#include<iostream> #include<string> #include<iomanip> #include<cmath> #include<vector> #include<algorithm> using namespace std; #define int long long #define endl "\n" const long long INF = (long long)1e18; const long long MOD = 1'000'000'007; string yn(bool f){return f?"Yes":"No";} string YN(bool f){return f?"YES":"NO";} #define MAX_PN 100 bool PN[MAX_PN+2]; void huga(int t, int x){ if(PN[t]) return; for(int i = t*t; i <= x; i+=t) PN[i] = true; } void Sieve_of_Eratosthenes(int x){ PN[0]=PN[1]=PN[4]=true; for(int i = 6; (i-1)*(i-1) <= x; i+=6) huga(i-1,x),huga(i+1,x); for(int i = 6; i <= x; i+=6) PN[i]=PN[i+2]=PN[i+3]=PN[i+4]=true; } signed main(){ cin.tie(0); ios::sync_with_stdio(false); cout<<fixed<<setprecision(10); bool flag = false; int N; cin>>N; Sieve_of_Eratosthenes(N+10); if(PN[N] == false){ cout<<"Sosu!"<<endl; // return 0; flag = true; } for(int i = 2; i*i <= N; i++){ if(i*i == N){ cout<<"Heihosu!"<<endl; // return 0; flag = true; } } for(int i = 2; i*i*i <= N; i++){ if(i*i*i == N){ cout<<"Ripposu!"<<endl; // return 0; flag = true; } } int con = 0; if(N != 1) con += 1; for(int i = 2; i*i <= N; i++){ if(N%i == 0){ con += i; if(i*i != N) con += N/i; } } if(con && con == N){ cout<<"Kanzensu!"<<endl; flag = true; } if(!flag) cout<<N<<endl; return 0; }