提出詳細
ソースコード
#include<iostream>
#include<stdlib.h>
#include<cassert>
#include <math.h>
using namespace std;
/*
入力は3以上1000以下
スーパー素数がないパタンを考えない
*/
bool check_prime(int num)
{
if (num == 2) return true;
else if(num % 2 == 0) return false; // 偶数はあらかじめ除く
double sqrtNum = sqrt(num);
for (int i = 3; i <= sqrtNum; i += 2)
{
if (num % i == 0)
{
// 素数ではない
return false;
}
}
return true;
}
int main()
{
int t;
cin>>t;
int n,cnt;
for(int test=1; test<=t; test++){
cout<<"Case #"<<test<<endl;
cin>>n;
cnt=1;
for(int i=3; i<=n; i++){
if(check_prime(i)==true){
cnt++;
if(check_prime(cnt)==true){
cout<<i<<endl;
}
}
}
}
return EXIT_SUCCESS;
}
提出情報
提出出力結果
テストケース情報
# |
状態 |
詳細情報 |
正解か誤答の場合のみ表示されます. |