結果
| 問題 |
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;
}