12 solutions

  • 1
    @ 2025-11-18 13:14:26

    解题报告

    撰写人: 钟志杰

    题意分析

    这道题与上一道题差不多,只不过就是判断一个区间而已。

    难度等级

    ★★☆☆☆

    解题思路

    这道题重点在于怎么判断质数,质数的判断方法如下:
    1.质数数不能是1,因为质数要求是只有2个因数,而1只有1个因数。
    2.质数只有2个因数。
    3(附加).如果这个数为2的倍数(除了2),那这个数就不是质数
    最后我们用for循环判断区间即可。

    解题反思

    参考程序

    #include<bits/stdc++.h>
    using namespace std;
    int a,b,s; 
    bool zs(int x){//判断质数函数
    	if(x<=1) return 0;//如果≤1就不是质数
    	if(x%2==0&&x!=2) return 0;//判断二的倍数(除了2)
        for(int i=3;i*i<=x;i+=2){//一个个试探
        	if(x%i==0) return 0;//如果这个数有别的倍数,就不是质数
        }return 1;//直到最后还没踢出去,就是质数
    }
    int main(){//主函数
        cin>>a>>b;
        for(int i=a;i<=b;i++){//一个个判断质数数量
            if(zs(i)) s++;//记录数量
        }
        cout<<s;
        return 0;
    }
    
    

    Information

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