小数点を検索


質問する



コード#コード#

#include <bits/stdc++.h>

using namespace std;

int solution(int n)
{
    cin.tie(NULL);
    ios_base::sync_with_stdio(false);
    long long answer = 0;
    vector<long long> v;

    for (long long i = 1; i <= n; i++)
    {
        v.push_back(i);
    }

    for (long long i = 2; i <= n; i++)
    {
        for (long long j = i * i; j <= n; j += i)
        {
            v[j] = -1;
        }
    }
    v[1] = -1;
    for (long long i = 1; i <= n; i++)
    {
        if (v[i] != -1)
            answer++;
    }

    return answer;
}
int main(int argc, char const *argv[])
{
    int n = 5;
    solution(n);
    return 0;
}
初めてint型を使用した場合、分割エラーが発生したため、long long型に変更すると正解となります.
でも遅すぎてsqrtを活用します.