提出詳細


ソースコード

#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;
}

提出情報

提出時間 2019-11-26 04:35:49
問題 F - スーパー素数
ユーザ名 teracoder
状態 形式違反
正解率 N/A
提出出力結果

テストケース情報

# 状態 詳細情報
正解か誤答の場合のみ表示されます.