結果
問題 | No.843 Triple Primes |
ユーザー |
![]() |
提出日時 | 2019-07-07 00:09:34 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 8 ms / 2,000 ms |
コード長 | 580 bytes |
コンパイル時間 | 816 ms |
コンパイル使用メモリ | 76,048 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-19 14:18:44 |
合計ジャッジ時間 | 1,843 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 42 |
ソースコード
#include<iostream> #include<algorithm> using namespace std; using lint=int64_t; #include<vector> template<typename T> void isPrime(vector<bool> &vec,T n) { if(vec.size()<n+1) vec.resize(n+1); for(auto&& i:vec) i=true; vec[0]=false; vec[1]=false; for(T i=2;i*i<=n;i++) for(T j=2;i*j<=n;j++) vec[i*j]=false; return; } int main() { lint N; cin >> N; vector<bool> isp; isPrime(isp,N); lint ans=0; for(lint r=2;r<=N;r++) { if(!isp[r])continue; if(r*r-2<=N && isp[r*r-2]) { ans+=2; if(r==2)ans--; } } cout << ans << endl; return 0; }