15 条题解

  • 6
    @ 2022-2-9 15:46:08
    #include <iostream>
    using namespace std;
    int main ()
    {
        int m,n,sum=0,num=0;
        cin>>m>>n;
        if (m==1)
        {
            m++;
        }
        for (int i=m;i<=n;i++)
        {
            sum=0;
            for (int l=2;l<i;l++)
            {
                if (i%l==0)
                {
                    sum++;
                    break;
                }
            }
            if (sum==0)
            {
                num++;
            }
        }
        cout<<num<<endl;
        return 0;
    }
    • 2
      @ 2022-8-26 11:44:55

      快一点的方法:筛素数

      #include <cstdio>
      
      int n , m , ans;
      bool un_prime[50005] ;
      
      inline int reader(){//快读(也可以cin / scanf,没快多少)
      	int it = 0, chr = getchar();
      	while('0' > chr || chr > '9')
      		chr = getchar();
      	while('0' <= chr && chr <= '9')
      		it = (it << 1) + (it << 3) + chr - '0' ,
              chr = getchar() ;
      	return it ;
      } 
      int main(){
      	m = reader() ;//读取
      	n = reader() ;//读取
      	for(int i = 2 ; i <= n ; i ++)
              //筛素数
              //从2开始到n结束
      		if(!un_prime[i]){
                  //如果前面没有任何是i的因数
      			ans += (i >= m) ;
                  //若i >= m 就说明这个数在范围
                  //找到的数量增加1
      			for(int j = i * 2 ; j <= n ; j += i)
      				un_prime[j] = true ;
                      //i的所有倍数都是合数
      		}
      	printf("%d" , ans) ;
          //输出
      	return 0 ;
      }
      
      • 2
        @ 2022-2-18 17:14:50

        #include<bits/stdc++.h> using namespace std; int main() { int M,N,sum=0; bool flag; cin>>M>>N; for (int i=M+1;i<N;i++) { flag=true; for (int j=2;j<i;j++) { if (i%j==0) { flag=false; break; } } if (flag) { sum++; } } cout<<sum; return 0; }

        • 2
          @ 2022-2-9 17:00:49

          先要会写判断一个数是否是质数的代码

          int temp=i;
          bool b=false;
          for(int j=2;j<temp;j++)
          {
          	if(temp%j==0)
          	{
          		b=true;
          		break;
          	}
          }
          //判断temp是否质数,如果是b的值为false,不是b的值为true
          

          (如果会函数,可以将以上代码封装到函数中,直接循环中调用函数就可以)

          将以上代码放到m~n的循环中,每次判断i的值是否为质数

          for(int i=m;i<=n;i++)
          {
          	int temp=i;
          	bool b=false;
          	for(int j=2;j<temp;j++)
          	{
          		if(temp%j==0)
          		{
          			b=true;
          			break;
          		}
          	}
          //是质数计数变量num累加
          	if(b==false)
          		num++;
          }
          

          最后输出num

          • @ 2022-4-6 14:21:36

            第一个代码错了吧,if里头“b=true;”是“b="true"”才对吧

          • @ 2024-1-28 17:50:52

            @兄弟,这是布尔变量,不用加引号

        • 1
          @ 2024-1-29 20:59:11

          已AC,请放心食用!!!

          #include <iostream>
          using namespace std;
          void prime(int m, int n, int sum, bool p)
          {
              for (int i = m; i <= n; i++)
              {
                  if (i == 1)
                  {
                      continue;
                  }
                  p = true;
                  for (int j = 2; j <= i - 1; j++)
                  {
                      if (i % j == 0)
                      {
                          p = false;
                          break;
                      }
                  }
                  if (p)
                  {
                      sum += 1;
                  }
              }
              cout << sum;
          }
          int main()
          {
              int m, n, sum = 0, p;
              cin >> m >> n;
              prime (m, n, sum, p);
              return 0;
          }
          //已AC
          //仅供参考,请不要抄袭
          
          • 1
            @ 2024-1-28 17:49:52

            昨天上编程课时学到了函数,今天便来用函数解题,顺便练练手,唯一的感觉就是:函数真的太好用了!

            已AC,请放心食用

            #include <iostream>
            using namespace std;
            void prime(int m, int n, int sum, bool p)
            {
                for (int i = m; i <= n; i++)
                {
                    if (i == 1)
                    {
                        continue;
                    }
                    p = true;
                    for (int j = 2; j <= i - 1; j++)
                    {
                        if (i % j == 0)
                        {
                            p = false;
                            break;
                        }
                    }
                    if (p)
                    {
                        sum += 1;
                    }
                }
                cout << sum;
            }
            int main()
            {
                int m, n, sum = 0, p;
                cin >> m >> n;
                prime (m, n, sum, p);
                return 0;
            }
            

            养成好习惯,看后点个赞( •̀ ω •́ )✧!

            • 1
              @ 2023-7-29 21:03:30
              #include <bits/stdc++.h>
              using namespace std;
              int n,m,ans;
              bool check(int x)//判断素数
              {
                  if(x==1)
                      return false;
                  for(int i=2;i<x;i++)
                      if(x%i==0)
                          return false;
                  return true;
              }
              int main()
              {
                  cin>>m>>n;
                  for(int i=m;i<=n;i++)
                      if(check(i)==true)
                          ans++;
                  cout<<ans<<endl;
                  return 0;
              }
              
              • 1
                @ 2023-7-7 13:18:18
                #include <iostream>
                #include <cmath>
                using namespace std;
                int main()
                {
                	int m, n;
                	cin >> m >> n;
                	int sum = 0;
                	for (int i = m; i <= n; i++)
                	{
                		int judge = 1;
                		if (i == 1)//1既不是质数也不是合数
                		{
                			continue;
                		}
                		for (int j = 2; j <= sqrt(i); j++)
                		{
                			if (judge == 0)
                			{
                				continue;
                			}
                			if (i % j == 0)
                			{
                				judge = 0;
                			}
                		}
                		if (judge == 1)
                		{
                			sum++;
                		}
                	}
                	cout << sum;
                	return 0;
                }
                
                • 1
                  @ 2022-11-23 19:41:54

                  此题有多种解法: ①无函数有num

                  #include <iostream>
                  using namespace std;
                  int main ()
                  {
                      int m, n, num1 = 0, num2 = 0;
                      cin>> m >> n;
                      if (m == 1)
                      {
                          m++;
                      }
                      for (int i = m; i <= n; i++)
                      {
                          num1 = 0;
                          for (int j = 2; j < i; j++)
                          {
                              if (i % j == 0)
                              {
                                  num1++;
                                  break;
                              }
                          }
                          if (num1 == 0)
                          {
                              num2++;
                          }
                      }
                      cout << num2 << endl;
                      return 0;
                  }
                  

                  ②无函数有bool:

                  #include <iostream>
                  using namespace std;
                  int m, n, sum = 0;
                  
                  int main ()
                  {
                      bool flag = true;
                      cin >> m >> n;
                      for (int i = m; i <= n; i++)
                      {
                          flag = true;
                          for (int j = 2; j < i; j++)
                          {
                              if (i % j == 0)
                              {
                                  flag = false;
                                  break;
                              }
                          }
                          if (flag)
                          {
                              sum++;
                          }
                      }
                      cout << sum << endl;
                      return 0;
                  }
                  

                  ③有函数(有返回值)

                  #include <iostream>
                  using namespace std;
                  bool prime(int x)
                  {
                      for(int i = 2; i < x; i++)
                      {
                          if(x % i == 0)
                          {
                              return false;
                          }
                      }
                      return true;
                  }
                  int main()
                  {
                      int m, n, sum = 0;
                      cin >> m >> n;
                      for(int i = m; i <= n; i++)
                      {
                          if(prime(i) == true)
                          {
                              sum++;
                          }
                      }
                      cout << sum << endl;
                      return 0;
                  }
                  

                  以上几种代码都是AC过的,大家可以选择自己理解的方法来编。

                  • 0
                    @ 2023-10-14 20:07:49
                    #include<bits/stdc++.h>
                    using namespace std;
                    int a,b,sum;
                    int main()
                    {
                        cin>>a>>b;
                        for(int i=a+1;i<b;i++)
                        {
                            int num=0;
                            for(int j=2;j<i;j++)
                            {
                                if(i%j==0)
                                {
                                    num=1;
                                }
                            }
                            if(num==0)
                            {
                                sum++;
                            }
                        }
                        cout<<sum;
                        return 0;
                    }
                    
                    • 0
                      @ 2023-8-27 10:14:33
                      #include <bits/stdc++.h>
                      using namespace std;
                      bool prime(int n)
                      {
                          for (int i = 2; i <= sqrt(n); i++)
                              if (n % i == 0)
                                  return false;
                          return true;
                      }
                      int main()
                      {
                          ios::sync_with_stdio(false);
                          cin.tie(NULL);cout.tie(NULL);
                          int n, m, sum = 0;
                          cin >> m >> n;
                          for (int i = m; i <= n; i++)
                              if (prime(i))
                                  sum++;
                          cout << sum;
                          return 0;
                      }
                      
                      • 0
                        @ 2023-2-16 22:41:11

                        #include <iostream> using namespace std; int main () { int m,n,sum=0,num=0; cin>>m>>n; if (m1) { m++; } for (int i=m;i<=n;i++) { sum=0; for (int l=2;l<i;l++) { if (i%l0) { sum++; break; } } if (sum==0) { num++; } } cout<<num<<endl; return 0; }

                        • 0
                          @ 2022-11-18 21:34:49

                          `

                          #include <iostream>//hetao3097453
                          using namespace std;//使用素数函数,看返回值
                          bool sushu(int n)//137ms 420kib
                          {
                              for(int i = 2;i < n;i++)
                              {
                                  if(n % i == 0)
                                  {
                                      return false;
                                  }
                              }
                              return true;
                          }
                          int main()
                          {
                              int m,n,num = 0;
                              cin >> m >> n;
                              for(int i = m;i <= n;i++)
                              {
                                  if(sushu(i))
                                  {
                                      num++;
                                  }
                              }
                              cout << num;
                              return 0;
                          }
                          
                          
                          • -1
                            @ 2022-11-3 20:16:08

                            同志们,不用想了,范围管够!暴力一点!

                            def aps(a):
                                for i in range(2,a//2):
                                    if a%i == 0:
                                        return False
                                return True#封装函数
                            a=input().split()
                            M=int(a[0])
                            N=int(a[1])
                            p=[]
                            s=0
                            for i in range(M,N+1):
                                if i==1:
                                    continue
                                elif i==2:
                                    s+=1
                                    continue#特殊情况。
                            
                                elif aps(i):
                                    s+=1
                                else:
                                    pass
                            print(s)
                            

                            Loading:9/100……

                            • -3
                              @ 2022-2-16 16:57:26

                              #include <iostream> using namespace std; int main () { int m,n,num=0; cin>>m>>n; if (m1) { m++; } for (int i=m;i<=n;i++) { bool sum = true; for (int j=2;j<i;j++) { if (i%j0) { sum = false; break; } } if (sum) { num++; } } cout<<num<<endl; return 0; }

                              • 1

                              信息

                              ID
                              64
                              时间
                              1000ms
                              内存
                              16MiB
                              难度
                              6
                              标签
                              递交数
                              675
                              已通过
                              221
                              上传者