12 solutions

  • 0
    @ 2025-11-11 17:27:12

    解题报告

    撰写人: Jacy

    题意分析

    题目描述 给定一个区间 [a, b](包含 a 和 b),统计该区间内质数的个数。

    输入格式 一行两个整数 a 和 b,其中 1 <= a <= b <= 1000000。

    输出格式 一个整数,表示区间 [a, b] 内质数的个数。

    难度等级

    ★★★☆☆

    解题思路

    用for循环列出质数表,不是质数的,对质数数组进行标记 随后输入区间范围 再用for循环对区间范围的质数数组看下是否有被标记,没被标记则累加

    解题反思

    参考程序

    #include<bits/stdc++.h>
    using namespace std;
    int a[1000005],l,r,s;
    int main()
    {
        a[0]=1,a[1]=1;
        for(int i=2;i*i<1000000;i++)
            if(a[i]==0)
                for(int j=i+i;j<=1000000;j+=i)
                    a[j]=1;
        cin>>l>>r;
        for(int i=l;i<=r;i++)    
            if(a[i]==0)s++;
        cout<<s;
        return 0;
    }
    
    

    Information

    ID
    603
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    1
    Tags
    # Submissions
    105
    Accepted
    34
    Uploaded By