結果
| 問題 |
No.407 鴨等素数間隔列の数え上げ
|
| コンテスト | |
| ユーザー |
tossy
|
| 提出日時 | 2016-08-05 22:48:10 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 80 ms / 1,000 ms |
| コード長 | 960 bytes |
| コンパイル時間 | 873 ms |
| コンパイル使用メモリ | 89,292 KB |
| 実行使用メモリ | 17,204 KB |
| 最終ジャッジ日時 | 2024-12-15 20:55:54 |
| 合計ジャッジ時間 | 2,453 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 5 |
| other | AC * 31 |
ソースコード
#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <cassert>
#include <iostream>
#include <algorithm>
#include <stack>
#include <queue>
#include <vector>
#include <set>
#include <map>
#include <bitset>
using namespace std;
#define repl(i,a,b) for(int i=(int)(a);i<(int)(b);i++)
#define rep(i,n) repl(i,0,n)
#define mp(a,b) make_pair(a,b)
#define pb(a) push_back(a)
#define all(x) (x).begin(),(x).end()
#define dbg(x) cout<<#x"="<<x<<endl
#define fi first
#define se second
#define INF 2147483600
#define LL 10000000
bool p[LL];
int primes[1000000];
int main(){
int n,l;
cin>>n>>l;
int idx=0;
fill(p, p+LL, true);
p[0]=p[1]=false;
for(int i=2;i<=l/2;i++) if(p[i]){
primes[idx++]=i;
for(int j=i*2; j<=l; j+=i)p[j]=false;
}
int reps=idx;
idx=0;
long res=0;
while(idx<reps && (long)primes[idx]*(n-1) <= l){
res += 1+l-(long)primes[idx]*(n-1);
idx++;
}
cout<<res<<endl;
return 0;
}
tossy