【算法】程序猿不写代码是不对的28

    xiaoxiao2021-03-25  99

    package com.kingdz.algorithm.time201703; /** * 略微改进版的哥德巴赫猜想,减少计算素数的次数 * * @author kingdz * */ public class Algo10 { public static void main(String[] args) { int[] prime = createPrime(100); for (int i = 6; i < 1000; i = i + 2) { int flag = 1; for (int j = 2; j <= i / 2; j++) { // 如果其中一个数是偶数则排除 if (j % 2 == 0 || (i - j) % 2 == 0) { continue; } if (prime[j] == 1 && prime[i - j] == 1) { // 两个数都是素数,则输出 System.out.println(i + "=" + j + "+" + (i - j)); flag = 0; break; } } // 如果有某个数不符合猜想则输出error if (flag == 1) { System.out.println("error\t" + i); } } } /** * 计算素数组成的数组 * * @param number * @return */ private static int[] createPrime(int number) { int[] prime = new int[number]; for (int i = 2; i < prime.length; i++) { prime[i] = 1; } for (int i = 2; i * i < prime.length; i++) { if (prime[i] == 1) { for (int j = 2 * i; j < prime.length; j++) { if (j % i == 0) { prime[j] = 0; } } } } return prime; } }
    转载请注明原文地址: https://ju.6miu.com/read-23330.html

    最新回复(0)