12 solutions

  • 3
    @ 2025-11-6 17:04:00
    #include <bits/stdc++.h>
    using namespace std;
    bool p(int n)
    {
    	for(int i=2;i*i<=n;i++)
    		if(n%i<1)return 0;
    	return n>1;
    }
    int main()
    {
    	long long l,r,s=0;
    	cin>>l>>r;
    	for(long long i=l;i<=r;s+=p(i++));
    	cout<<s;
    }
    
    • 1
      @ 2025-11-18 16:44:20

      解题报告

      撰写人: 胡弘宣

      题意分析

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

      难度等级

      ★★★☆☆

      解题思路

      循环查找

      解题反思

      循环起始注意

      参考程序

      #include<bits/stdc++.h>
      using namespace std;
      int n,n1,a=0,s;
      int main(){
          cin>>n>>n1;
          for(int i=n;i<=n1;i++)
          {
              a=0;
              for(int j=2;j<i;j++)
              {
                  if(i%j==0)
                  {
                      a=1;
                  }
              }
              if(a==0)
              {
                  s++;
              }
          }
          cout<<s;
         
          return 0;
      }
      
      
      • 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;
        }
        
        
        • 0
          @ 2025-11-17 9:47:04

          解题报告

          撰写人: 陈天翊

          题意分析

          给定一个区间 [a, b]统计该区间内质数的个数。

          难度等级

          ★☆☆☆☆

          参考程序

          #include<bits/stdc++.h>
          using namespace std;
          int main(){
              int n=0;
              int a,b;
              bool s;
              cin>>a>>b;
              for(int i=a;i<=b;i++){
                 s=0;
                 for(int j=2;j<i;j++){
                    if(i%j==0){s=1;break;}
              }
               if(i==2||s==0)if(a!=1)n++;
              } 
              cout<<n;
              return 0;
          }
          
          • 0
            @ 2025-11-17 9:43:39

            解题报告

            撰写人: 陈斯伟

            题意分析

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

            难度等级

            ★☆☆☆☆

            解题思路

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

            解题反思

            : )

            参考程序

            #include <bits/stdc++.h>
            using namespace std;
            bool t(int n){
            	for(int i=2;i*i<=n;i++)
            		if(n%i<1)return 0;
            	return n>1;
            }
            int main(){
            	long long l,r,s=0;
            	cin>>l>>r;
            	for(long long i=l;i<=r;s+=t(i++));
            	cout<<s;
            	return 0;
            }
            
            
            • 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;
              }
              
              
              • 0
                @ 2025-11-11 17:26:28

                解题报告

                撰写人: 陈沛宜

                题意分析

                统计两个数之间,有多少个质数

                难度等级

                ★☆☆☆☆

                解题思路

                先判断是不是质数,统计后再输出

                解题反思

                参考程序

                #include<bits/stdc++.h>
                using namespace std;
                using namespace std;
                
                
                bool isPrime(int num) {
                    if (num < 2) {
                        return false;
                    }
                    for (int i = 2; i <= sqrt(num); i++) {
                        if (num % i == 0) {
                            return false;
                        }
                    }
                    return true;
                }
                
                int main() {
                    int a, b;
                    cin >> a >> b;
                
                    int count = 0;
                   
                    for (int i = a; i <= b; i++) {
                        if (isPrime(i)) {
                            count++;
                        }
                    }
                
                    cout << count << endl;
                    return 0;
                }
                
                
                • -1
                  @ 2025-11-11 17:29:44

                  解题报告

                  撰写人: 冯泽泓

                  题意分析

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

                  难度等级

                  ★★★★★

                  解题思路

                  先判断是不是质数,统计后再输出

                  解题反思

                  c要重置

                  参考程序

                  #include<bits/stdc++.h>
                  using namespace std;
                  int a,b,c,d;
                  int main(){
                      cin>>a>>b;
                      for(int i=a;i<=b;i++)
                      {
                          c=1;
                          for(int j=2;j<i;j++)
                          {
                              if(i%j==0){c++;}
                          }
                          if(c==1){d++;}
                      }
                     cout<<d;
                      return 0;
                  }
                  
                  • -1
                    @ 2025-11-11 17:24:03

                    解题报告

                    撰写人: 林毓瀚

                    题意分析

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

                    难度等级

                    ★☆☆☆☆

                    解题思路

                    思路

                    解题反思

                    反思

                    参考程序

                    #include <iostream>
                    #include <cmath>
                    using namespace std;
                    
                    
                    bool isPrime(int num) {
                        if (num < 2) {
                            return false;
                        }
                        for (int i = 2; i <= sqrt(num); i++) {
                            if (num % i == 0) {
                                return false;
                            }
                        }
                        return true;
                    }
                    
                    int main() {
                        int a, b;
                        cin >> a >> b;
                    
                        int count = 0;
                       
                        for (int i = a; i <= b; i++) {
                            if (isPrime(i)) {
                                count++;
                            }
                        }
                    
                        cout << count << endl;
                        return 0;
                    }
                    
                    
                    ```language
                    
                    • -1
                      @ 2025-11-11 17:15:16
                      #include<bits/stdc++.h>
                      using namespace std;
                      int a,b,s=0;
                      bool zs(int x)
                      {
                      	if(x<2)return false;
                      	for(int i=2;i*i<=x;i++)
                      		if(x%i==0)
                      			return false;
                      	return true;
                      }
                      int main()
                      {
                      	cin>>a>>b;
                      	for(int i=a;i<=b;i++)
                      	{
                      		if(zs(i))
                      			s++;
                      	}
                      	cout<<s;
                      	return 0;
                      }
                      
                      
                      • -2
                        @ 2025-11-11 17:28:34

                        解题报告

                        撰写人: 26

                        题意分析

                        24

                        解题思路

                        36

                        解题反思

                        31

                        参考程序

                        #include <bits/stdc++.h>
                        using namespace std;
                        bool p(int n)
                        {
                        	for(int i=2;i*i<=n;i++)
                        		if(n%i<1)return 0;
                        	return n>1;
                        }
                        int main()
                        {
                        	long long l,r,s=0;
                        	cin>>l>>r;
                        	for(long long i=l;i<=r;s+=p(i++));
                        	cout<<s;
                        }
                        
                        • -3
                          @ 2025-11-11 17:23:29
                          #include <cmath>
                          using namespace std;
                          
                          
                          bool isPrime(int num) {
                              if (num < 2) {
                                  return false;
                              }
                              for (int i = 2; i <= sqrt(num); i++) {
                                  if (num % i == 0) {
                                      return false;
                                  }
                              }
                              return true;
                          }
                          
                          int main() {
                              int a, b;
                              cin >> a >> b;
                          
                              int count = 0;
                             
                              for (int i = a; i <= b; i++) {
                                  if (isPrime(i)) {
                                      count++;
                                  }
                              }
                          
                              cout << count << endl;
                              return 0;
                          }
                          
                          
                          • 1

                          Information

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