gpt4 book ai didi

java - 构建一个读取数字并表示它是质数或列出其因数的 Java 程序

转载 作者:太空宇宙 更新时间:2023-11-04 08:21:34 25 4
gpt4 key购买 nike

我的具体项目的目标是编写一个程序,提示用户输入两个整数。程序将读取两个整数并判断它们是否是素数。如果不是,程序将列出因子,否则它将简单地打印“prime”并重复询问用户两个整数。此外,程序应该打印两个给定整数之间的所有数字的因数以及整数本身。它还会给出素数的平均值。

目标是使最终结果如下所示(假设两个整数是 6 和 11):

Please enter two integers: 6 11
6: 2 3
7: Prime
8: 2 4
9: 3
10: 2 5
11: Prime
There are three prime numbers
The average value of the prime numbers is 9.00

请输入两个整数:

这是我的代码:

import java.util.Scanner;

public class Prime {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int r1, r2, i, c = 0;

System.out.println("Please enter two integers : ");
int num1 = input.nextInt();
int num2 = input.nextInt();
while (num1 > 0 && num2 > 0)
{

for (i = 2; i < num1; i++) {
r1 = num1 % i;
r2 = num2 % i;
if (r1 == 0 && r2 == 0)
System.out.println("Prime");
{


System.out.println(i+ "\t");
c++;

}

}
if (c == 0)
System.out.println("Prime");
System.out.print("Please enter two integers : ");
num1 = input.nextInt();
num2 = input.nextInt();



}
}}
<小时/>

这是我输入 6 和 11 时的输出:

Please enter two integers : 
6 11
2
3
4
5
Please enter two integers :
<小时/>

现在我不知道我哪里出了问题,但我觉得我一定是在朝着正确的方向前进。如果两个输入都是素数,它将打印素数。如果一个是质数而一个不是,它将执行我上面发布的操作。

感谢任何和所有帮助。谢谢。

最佳答案

嗯,我只是简单地浏览了一下,但你的问题出在 for 循环中。 i 从 2 开始,这对于检查因子来说是明智的。然后,您同时检查 num1 和 num2 是否都能被 i 整除(此时为 2)。如果是,则打印“Prime”。然后你迭代并再次执行。仔细考虑一下:它与你的想法/想法有多接近?

如果我不得不猜测,您在

之后缺少 else
if (r1 == 0 && r2 == 0)
System.out.println("Prime");
{

而且“if”的条件也应该被否定:if (!(r1 == 0 || r2 == 0))。这至少应该足以让您朝着正确的方向前进。

祝你好运!

关于java - 构建一个读取数字并表示它是质数或列出其因数的 Java 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9439509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com