7 条题解

  • 5
    @ 2024-3-10 11:36:35

    定义一个函数他不香吗,走起!

    已AC,请放心食用

    #include <bits/stdc++.h>
    using namespace std;
    int prime(int n)
    {
        for (int i = 2; i < n; i++)
        {
            if (n % i == 0 || n == 1)
            {
                return false;
            }
        }
        return true;
    }
    int main()
    {
        int n;
        cin >> n;
        for (int i = 4; i <= n; i += 2)
        {
            for (int j = 2; j <= i / 2; j++)
            {
                if (prime(j) && prime(i - j))
                {
                    cout << i << "=" << j << "+" << i - j << endl;
                }
            }
        }
        return 0;
    }
    

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

    • 3

      这道题主要是埃式筛法,不然会超时;以下是埃式筛法的代码;先把1~n之间的素数找出;

      bool vis[205];//在适当时可以换
      bool prime(int n)
      {
          vis[0] = vis[1] = 1;
          for (int i = 2; i <= n; i++)
          {
              if (!vis[i])
              {
                  for (int j = i * 2; j <= n; j += i)
                  {
                      vis[j] = 1;
                  }
              }
          }
      }
      

      这里的判断只能从2~i/2,不然会重复输出如10=3+7和10=7+3都会输出;上代码!

      for (int i = 1; i <= e; i++)
      {
           if (i % 2 == 0)
           {
               for (int j = 2; j <= i/2; j++)
               {
                   if (!vis[j] && !vis[i - j])
                   {
                       cout<<i<<"="<<j<<"+"<<i-j<<endl;
                   }
               }
           }
      }
      
      • @ 2024-3-10 11:37:49

        可以不用埃氏筛法,不然像我们这些L5的怎么办?

    • 2
      @ 2023-8-31 17:41:21

      暴力法应该也是可以过得

      • 1
        @ 2023-8-22 16:43:02

        过辣!

            long long n;
            cin>>n;
            for (int i=4;i<=n;i+=2)//找偶数
            {
                for (int a=2;a<i-1;a++)//找加数1
                {
                    int cnt1=0,cnt2=0,b=i-a;//找加数2
                    bool flag=1;
                    if (a>b)
                    {
                        break;
                    }
                    for (int j=1;j<=a;j++)
                    {
                        if (a%j==0)
                        {
                            cnt1++;
                        }
                        if (cnt1>2)
                        {
                            flag=0;
                            break;
                        }
                    }
                    for (int j=1;j<=b;j++)
                    {
                        if (b%j==0)
                        {
                            cnt2++;
                        }
                        if (cnt2>2)
                        {
                            flag=0;
                            break;
                        }
                    }
        
                    if (flag)
                    {
                        cout<<i<<"="<<a<<"+"<<b<<endl;
                    }
                }
            }
        
        • 1
          @ 2023-2-5 14:32:14
          #include <bits/stdc++.h>
          using namespace std;
          int main()
          {
              int n;
              cin >> n;
              for(int i=4;i<=n;i+=2)
              {
                  int b=1;
                  for(int c=2;c<=i/2;c++)
                  {
                      for(int j=2;j<=i;j++)
                      {
                          b=1;
                          if(c+j==i)
                          {
                              for(int d=2;d<c;d++)
                              {
                                  if(c%d==0)
                                  {
                                      b=0;
                                      break;
                                  }
                              }
                              if(b==1)
                              {
                                  for(int u=2;u<j;u++)
                                  {
                                      if(j%u==0)
                                      {
                                          b=0;
                                          break;
                                      }
                                  }
                                  if(b==1)
                                  {
                                      cout << i << "=" << c << "+" << j << endl;
                                  }
                              }
                              else if(b==0)
                              {
                                  continue;
                              }
                          }
                      }
                  }
              }
              return 0;
          }
          
          • -1
            @ 2023-2-5 13:37:04
            #include <bits/stdc++.h>
            using namespace std;
            void g(int n)
            {
                int b=1;
                for(int i=2;i<=n/2;i++)
                {
                    for(int j=2;j<=n;j++)
                    {
                        b=1;
                        if(i+j==n)
                        {
                            for(int d=2;d<i;d++)
                            {
                                if(i%d==0)
                                {
                                    b=0;
                                    break;
                                }
                            }
                            if(b==1)
                            {
                                for(int u=2;u<j;u++)
                                {
                                    if(j%u==0)
                                    {
                                        b=0;
                                        break;
                                    }
                                }
                                if(b==1)
                                {
                                    cout << n << "=" << i << "+" << j << endl;
                                }
                            }
                            else if(b==0)
                            {
                                continue;
                            }
                        }
                    }
                }
            }
            int main()
            {
                int n;
                cin >> n;
                for(int i=4;i<=n;i+=2)
                {
                    g(i);
                }
                return 0;
            }
            
            
            • -4
              @ 2023-8-10 17:10:49

              #include<bits/stdc++.h> using namespace std; bool prime(int x) { if(x<=1)return for(int i=2;i<=sqrt(x);i++)```{ if(x%i==0)return false; } return true; } int main() { int n; cin>>n; for(int i=4;i<=n;i+=2) { for(int a=1,b=i-a;b>=a;a++,b--) { if(prime(a) and prime(b)) { cout<<i<<"="<<a<<"+"<<b<<endl; } } } return 0; }

              • 1

              信息

              ID
              135
              时间
              1000ms
              内存
              16MiB
              难度
              2
              标签
              递交数
              109
              已通过
              64
              上传者