java - 为什么这个使用 Java 查找素数的程序不起作用?
问题描述
我想知道为什么这个java程序不能找到一个数字的素数。我在这个站点和其他地方看到了很多解决方案,但我想知道为什么这种方法还不够,因为它只返回 1 作为输出?第一个“if 语句”处理 1 和更低的数字以返回 -1(无效值),谢谢。
public class PrimeFactors{
public static void main(String[] args) {
System.out.println(getPrimeFactors(4));
}
public static int getPrimeFactors(int number) {
if (number <= 1) {
return -1;
}
for (int i = 1; i <= number; i++) {
if (number % i == 0) {
return i;
}
}
return number;
}
}
解决方案
您在此处的代码返回 i 的值,您已将其设置为 1。您对如何根据代码找到素数没有足够的了解。无论您在方法中添加什么,getPrimeFactors 都将返回 -1 或 1,因为您的代码是如何设置的。一个数除以 1 的余数始终为 0,因此它始终为真,只会返回 1。如果该数小于或等于 1,则返回 -1。除非您修复语法,否则返回编号本质上是死代码。希望这可以帮助你!
推荐阅读
- javascript - Javascript获取select中每个选项的值
- excel - 编辑 VBA UDF 以对括号中的数字求和,同时忽略括号中的单词
- php - 提交我的 php 表单时找不到页面
- java - 使用 RxJava2 正确处理背压和并发
- bash - Script Bash Solaris SS7 Query 信令点
- angular - Angular 6:多种配置(twas 环境)
- python - 将嵌套列表转换为 Pandas DF
- python - 获取类属性的属性名
- redux - RXJS 订阅主题 - 操作必须是普通对象。使用自定义中间件进行异步操作
- java - Eclipse 霓虹灯挂起加载 org.eclipse.ui.navigator