zoukankan      html  css  js  c++  java
  • luogu P1304 哥德巴赫猜想

    题目描述

    输入N(N<=10000),验证4~N所有偶数是否符合哥德巴赫猜想。

    (N为偶数)。

    如果一个数,例如10,则输出第一个加数相比其他解法最小的方案。如10=3+7=5+5,则10=5+5是错误答案。

    输入输出格式

    输入格式:

    第一行N

    输出格式:

    4=2+2 6=3+3 …… N=x+y

    输入输出样例

    输入样例#1:
    10
    输出样例#1:
    4=2+2
    6=3+3
    8=3+5
    10=3+7
    枚举
    #include<cstdio>
    #include<cmath>
    using namespace std;
    int n;
    bool a[10006];
    int num_prime=0, prime[10006];
    void init()
    {
        scanf("%d",&n);
        a[0]=a[1]=1;  
        for(int i=2;i<=n;i++)  
        {  
            if(!a[i])  
                prime[num_prime++]=i;  
            for(int j=0;j<num_prime&&i*prime[j]<=n;j++)  
            {  
                a[i*prime[j]]=1; 
                if(!(i%prime[j]))
                    break;  
            }  
        }
    }
    void solve(int x)
    {
        int i=0;
        while(prime[i]<x)
        {
            int tmp=x-prime[i];
            if(!a[tmp])
            {
                printf("%d=%d+%d
    ",x,prime[i],tmp);
                return;
            }
            i++;
        }
    }
    int main()
    {
        init();
        for(int i=4;i<=n;i+=2)
        {
            solve(i);
        }
        return 0;
    }
  • 相关阅读:
    js-21点小游戏
    js-打印出现最多次的字母
    盒模型浮动
    九九乘法表
    猫眼-湄公河行动电影介绍页面
    (day4)用css画三角形以及红旗
    cookie的使用
    用Servlet校验密码2
    Servlet登录验证
    Servlet概述
  • 原文地址:https://www.cnblogs.com/sssy/p/7147301.html
Copyright © 2011-2022 走看看