提出詳細
ソースコード
#include <iostream>
#include <sstream>
#include <stdio.h>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <functional>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <bitset>
#include <cassert>
#include <exception>
#include <numeric>
using namespace std;
typedef long long ll;
typedef string str;
typedef pair<ll, ll> Pll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<char> vc;
typedef vector<str> vs;
typedef vector<Pll> vp;
typedef vector<bool> vb;
#define rep(i, a, n) for (ll i = (a); i < (n); ++i)
#define rrep(i, a, n) for (ll i = (a); i > (n); --i)
#define erep(i, a, n) for (ll i = (a); i <= (n); ++i)
#define rerep(i, a, n) for (ll i = (a); i >= (n); --i)
#define all(c) (c).begin(), (c).end()
#define pb push_back
#define mp make_pair
#define sz(x) ((int)x.size())
#define SORT(x) sort(all(x))
#define RSORT(x) sort(all(x),greater<ll>())
#define vec_max(V) *max_element(all(V))
#define vec_min(V) *min_element(all(V))
#define vec_sum(V) accumulate(all(V), 0LL)
#define print(X) cout << (X) << "\n"
#define sprint(X) printf("%f\n", (X)) // 小数点の出力
#define _ << " " <<
#define Yes print("Yes")
#define No print("No")
#define case(X) cout << "Case #" << (X) + 1 << ":" << "\n"
static const int INF = 1e+9+7;
// vll prime;
// void Eratosthenes(int N){
// int arr[N];
// for(int i = 0; i < N; i++){
// arr[i] = 1;
// }
// for(int i = 2; i < sqrt(N); i++){
// if(arr[i]){
// for(int j = 0; i * (j + 2) < N; j++){
// arr[i *(j + 2)] = 0;
// }
// }
// }
// for(int i = 2; i < N; i++){
// if(arr[i]){
// prime.pb(i);
// }
// }
// }
//エラトステネスの篩
bool is_prime[ 10000 + 1 ];
vector<int> prime;
void Eratosthenes( const int N )
{
for( int i = 0; i <= N; i++ )
{
is_prime[ i ] = true;//初期化
}
for( int i = 2; i <= N; i++ )
{
if( is_prime[ i ] )
{
for( int j = 2 * i; j <= N; j += i )
{
is_prime[ j ] = false;
}
prime.pb( i );
}
}
}
int main(){
ll T;
cin >> T;
Eratosthenes(1000);
rep(i,0,T){
case(i);
ll N;
cin >> N;
erep(i,0,sz(prime)){
if(prime[prime[i]-1] > 0 && prime[prime[i]-1] <= N){
print(prime[prime[i]-1]);
}
}
}
return 0;
}
提出情報
提出出力結果
テストケース情報