結果
問題 |
No.36 素数が嫌い!
|
ユーザー |
![]() |
提出日時 | 2020-04-27 20:34:52 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,285 bytes |
コンパイル時間 | 973 ms |
コンパイル使用メモリ | 98,024 KB |
実行使用メモリ | 21,916 KB |
最終ジャッジ日時 | 2024-11-22 07:36:56 |
合計ジャッジ時間 | 188,300 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | TLE * 4 |
other | TLE * 26 |
ソースコード
#define _USE_MATH_DEFINES #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #include <sstream> #include <iomanip> #include <cmath> #include <cstring> #include <cstdlib> #include <algorithm> #include <stack> #include <queue> #include <vector> #include <list> #include <set> #include <map> #include <bitset> #include <utility> #include <numeric> #include <iterator> using namespace std; using ll = long long; using ull = unsigned long long; const ll inf = 1ll << 60; const ll mod = (ll)1e9 + 7; #define all(v) v.begin(), v.end() #define rall(v) v.rbegin(), v.rend() #define print(s) cout << s; #define println(s) cout << s << endl; #define printd(s, f) cout << fixed << setprecision(f) << s << endl; // 素数かどうかの判定 template<typename T> bool is_prime(T n) { if (n <= 2) { return true; } else if ((n == 1) || (n % 2 == 0)) { return false; } for (T i = 3; i * i <= n; i += 2) { if (n % i == 0) { return false; } } return true; } int main() { ll n; cin >> n; vector<ll> p; for (ll i = 2; i <= 10000000; i++) { if (is_prime(i)) { p.push_back(i); } } bool res = false; for (ll i = p.size() - 1; i >= 0; i--) { if (n % p[i] != 0) { res = true; break; } } println((res ? "YES" : "NO")); }