zoukankan      html  css  js  c++  java
  • POJ 2262 Goldbach's Conjecture

    在 1000000 以内验证哥德巴赫猜想:

    筛法求素数;

    为了减少空间,可能要用素数定理,但这道题空间足够了;

    1WA,太着急了没注意到输入为 0 时结束。

    # include <stdio.h>
    
    # define MAXN 1000000
    
    int m;
    int ptable[MAXN+1], p[MAXN/4];
    
    void build_ptable(void);
    void solve(int n);
    
    int main()
    {
        int n;
            
        build_ptable();
        while (~scanf("%d", &n) && n)
            solve(n);
        
        return 0;
    }
    
    void build_ptable(void)
    {
        int i, j;
        
        m = 0;
        for (i = 2; i*i <= MAXN; ++i)
        {
            if (!ptable[i])
            {
                p[++m] = i;
                for (j = i+i; j <= MAXN; j += i)
                    ptable[j] = 1;
            }
        }    
    }
    
    void solve(int n)
    {
        int i, x, y;
        for (i = 1; i <= m; ++i)
            if (!ptable[n-p[i]]) break;
        printf("%d = %d + %d\n", n, p[i], n-p[i]);
    }
  • 相关阅读:
    Codeforces Global Round 7 题解 (ABCDE)
    猫树 简单介绍
    pip模块
    协程
    多线程threading
    多进程multiprocessing
    DOM
    标签学习
    初步了解Bootstrap4
    初步了解jQuery
  • 原文地址:https://www.cnblogs.com/JMDWQ/p/2479112.html
Copyright © 2011-2022 走看看