結果
問題 | No.8023 素数判定するだけ |
ユーザー |
|
提出日時 | 2021-10-22 12:43:18 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,329 bytes |
コンパイル時間 | 739 ms |
コンパイル使用メモリ | 75,836 KB |
最終ジャッジ日時 | 2025-01-25 02:48:42 |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 25 |
ソースコード
#include <iostream>#include <utility>#include <vector>#include <numeric>using namespace std;using ll = long long;const ll t = true, f = false, tt = t << t;ll ad(ll a, ll b){vector<ll> tmp{a};return accumulate(tmp.begin(), tmp.end(), b);}ll mn(ll a, ll b){return ad(a, ad(~b, t));}template<class... Args>ll Num(Args... args){ll ret = f;for(auto v : initializer_list<ll>{args...}){ret <<= t;ret |= v;}return ret;}ll mm(ll a, ll b){ll ret = f;if(a>b){swap(a, b);}while(a){if(a&t){ret = ad(ret, b);}b <<= t;a >>= t;}return ret;}ll pp(ll a, ll b){ll x = ad(a, b);return x;}bool isprime(ll N){vector<bool> XS(N<<t, true);XS[f] = XS[t] = f;for(int i=tt; i<N; i=ad(i, t)){if(!XS[i]) continue;ll c = i;for(ll c = i<<t; c <= N; c = ad(c, i)){XS[c] = f;}}return XS[N];}int main(){ll N;cin >> N;if(isprime(N)){cout << (char)Num(t,f,t,t,f,f,t);cout << (char)Num(t,f,f,f,t,f,t);cout << (char)Num(t,f,t,f,f,t,t);}else{cout << (char)Num(t,f,f,t,t,t,f);cout << (char)Num(t,f,f,t,t,t,t);}cout << endl;return f;}