結果
問題 |
No.36 素数が嫌い!
|
ユーザー |
![]() |
提出日時 | 2015-12-29 23:37:38 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,003 bytes |
コンパイル時間 | 1,341 ms |
コンパイル使用メモリ | 167,424 KB |
実行使用メモリ | 591,668 KB |
最終ジャッジ日時 | 2024-09-19 08:32:32 |
合計ジャッジ時間 | 8,753 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 4 |
other | AC * 2 RE * 6 MLE * 1 -- * 17 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main(){ long long int n; cin >> n; if(n == 1){ cout << "NO" << endl; return 0; } vector<long long int> data(n); for(long long int i = 2; i <= n/2; i++) data[i] = i; for(long long int i = 2; i <= sqrt(n/2); i++){ if(data[i]){ for(long long int j = 0; i * (j + 2) < n/2; j++){ data[i * (j + 2)] = 0; } } } sort(data.begin(),data.end()); data.erase(unique(data.begin(),data.end()),data.end()); // data.erase(data.begin()); // for(auto a:data) cout << a << endl; // data[data.size()-1] vector<long long int> check; int max = data[data.size()-1]; for(int i = 0; i <= max/2; i++){ if(i != data[0]) { check.push_back(i); }else{ // cout << i << endl; data.erase(data.begin()); } } check.erase(check.begin()); // for(auto a:check) cout << a << endl; for(long long int i = 0; i < check.size(); i++){ if(n % check[i] == 0){ cout << "YES" << endl; return 0; } } cout << "NO" << endl; return 0; }