gpt4 book ai didi

java - 如何判断输入值是素数还是合数?

转载 作者:行者123 更新时间:2023-12-02 05:12:44 24 4
gpt4 key购买 nike

问题:接受一个数字,如果该数字是素数,则显示消息“PRIME”,否则显示消息“COMPOSITE”。

我无法休眠,无法思考如何为此编写代码。我想,如果我明白这里的逻辑,事情会很容易。对不起大家,我只是一个初学者

你能帮我解决这个问题吗?

我的教授告诉我,我可以理解这些代码中的逻辑,但我仍然很困惑:D

这是我的最后一个代码,用于获取我的教授告诉我的因素,我可以在这里获取逻辑。(我不知道怎么办:D)

import java.util.Scanner;
public class Factors {
public static void main(String[] args) {
Scanner n = new Scanner(System.in);
int num;
int ctr = 1;
System.out.print("Enter a number : ");
num = n.nextInt();
while(ctr <= num) {
if(num % ctr == 0) {
System.out.print(ctr + "\t");
}
ctr++;
}
System.out.println();
}
}

}

最佳答案

嗯,这对于你应该做什么有点模糊。

在实践中实现这一点的方法是使用像 Rabin-Miller 这样的概率算法,它可以设置为以您喜欢的任何准确度给出正确的答案,并且比保证的确定性算法高效得多。给出正确答案。

但是,如果您想编写确定性算法,则可以通过尝试从 2 到 sqrt(n) 的所有可能因数,并查看其中是否有任何一个能完全整除 n,来确定 n 是否为素数。您的代码一直到 n,效率很低。它还将决定所有值都是复合值,因为 n 总是恰好进入 n。至少,你应该停在 n-1 处。您还需要从 2 而不是 1 开始,因为 1 总是恰好进入 n。

关于java - 如何判断输入值是素数还是合数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27206238/

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