JAVA(求修改代码)读入整数n,对于大于等于6的偶数,分解为两个素数之和。

2025-03-24 22:48:58
推荐回答(2个)
回答1:

当满足条件b%j!=0&&a%i!=0时,有可能出现两数可以被其他数整除。例如a为10不被3整除,b为12不被5整除。

修改方法:

通过先计算一定数量的素数,放在一个数组中,然后从小到大遍历,若是n-a=b,若a和b都在数组中,则满足题目条件。

扩展资料

素数计算代码

Scanner input = new Scanner(System.in);

System.out.print("Find all prime numbers <= n, enter n: ");

int n = input.nextInt();

boolean[] primes = new boolean[n + 1]; // Prime number sieve

for (int i = 0; i < primes.length; i++) {// Initialize primes[i] to true

primes[i] = true; }

for (int k = 2; k <= n / k; k++) {

if (primes[k]) {

for (int i = k; i <= n / k; i++) {

primes[k * i] = false; // k * i is not prime}}}

final int NUMBER_PER_LINE = 10; // Display 10 per line

int count = 0; // Count the number of prime numbers found so far

// Print prime numbers

for (int i = 2; i < primes.length; i++) {

if (primes[i]) {count++;

if (count % 10 == 0) 

System.out.printf("%7d\n", i);else

System.out.printf("%7d", i);}}

System.out.println("\n" + count + " prime(s) less than or equal to " + n);

素数分布规律

以36N(N+1)为单位,随着N的增大,素数的个数以波浪形式渐渐增多。

性质

质数具有许多独特的性质:

(1)质数p的约数只有两个:1和p。

(2)初等数学基本定理:任一大于1的自然数,要么本身是质数,要么可以分解为几个质数之积,且这种分解是唯一的。

(3)质数的个数是无限的。

参考资料来源:百度百科-质数

回答2:

首先素数的定义是 只有1和本事两个约数
而你写的是if(b%j!=0&&a%i!=0) {}
这是啥?找到一个就是素数了?那我问你10是素数吗?那10%3是不是不为0?
不知道你写的是什么逻辑 乱七八糟的
你还是把原来需要填空的地方标出来