- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的程序,用于输出给定数字的素因数分解。我仍然只是 java 的初学者,所以我知道这不是最有效的代码。当我输入相对较大的数字时,就会出现问题。
输入:11 输出:11
输入:40 输出:2 2 2 5
输入:5427 输出:3 3 3 3 67
输入:435843 输出:3 3 79 613
输入:23456789 输出:无(似乎存在无限循环,代码应返回 23456789,因为它本身就是一个素数)
什么可能导致此问题?
import java.util.Scanner;
public class PrimeFactorization {
public static boolean isPrime(long n) {
boolean boo = false;
long counter = 0;
if (n == 1) {
boo = false;
} else if (n == 2) {
boo = true;
} else {
for (long i = 2; i < n; i++) {
if (n % i == 0) {
counter++;
}
}
if (counter == 0) {
boo = true;
}
}
return boo;
}
public static void primeFactorization(long num) {
for (long j = 1; j <= num; j++) {
if (isPrime(j)) {
if (num % j == 0) {
while (num % j == 0) {
System.out.printf(j + " ");
num = num / j;
}
}
}
if (num == 1) {
break;
}
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter any number:");
long num = scanner.nextLong();
System.out.print("Prime factorization of your number is: ");
primeFactorization(num);
scanner.close();
}
}
最佳答案
没有实际的错误 - 你只是以一种非常低效的方式做事。基本上,您在除法之前检查 1 到 23456789 之间的每个数字是否为素数。
进行此检查绝对没有意义。当您从 1 递增到 23456789 时,每次发现一个因子时,您都知道它必须是质数,因为您已经除掉了所有较小的因子。因此,如果您执行以下所有操作,这仍然可以正常工作,而且速度更快。
isPrime
方法。 if (isPrime(j)) {
行以及匹配的 }
j
从 2 开始,如 for(long j = 2 ; j <= num ; j++) {
if (num == 1) { break; }
。它根本没有任何作用。关于java - 如何修正我的素因数分解程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29353406/
有人可以告诉我这段代码的错误吗?我的问题是,如果输入在数组中,则显示“找到”,如果输入不在数组中,则显示“未找到”。为什么我输入的内容只能显示“找到”? String [] deptName = {"
我以前从未使用过 javascript,只需要一点帮助。我有这个: if (vars.devUrl != '') { vars.smsmessage = vars.smsmessage +
我在页面上有这个表格: 这只是查询结果,返回属于当前用户的记录。我添加了删除按钮。 我是 jquery&ajax 新手,我自己发明了这个任务。我想使用这些技术来处理按钮。它应该删除表中的一行。 由于我
关于以下 cv2.inRange(...) 调用: mask = cv2.inRange(quantized_img, color, color) 'quantized_img' 和 'color'
交叉发布于 CrossValidated . 前阵子问this question ,这是关于在使用 IV/2SLS 时纠正标准错误,并且第一阶段有一个 tobit 分布,我从 jay.sf 得到了一个
我有一个关于 CSS 的特殊问题——“VPS Plans”div 和“Features”div 应该 float 在一起并排在底部。不幸的是,除非我将 Features div 的大小调整为 460p
我已经打开并解析了下面的 xml,现在需要找到区域为“IE”的特定产品 block ,然后修改其“cleared_for_sale”和“wholesale_price_tier”值,但我不确定如何操作
所以我已经接近终点了,但我不明白为什么会这样。也许是因为编码一段时间后我现在很愚蠢。然而。所以我的程序应该允许两个文件。第一个是 MP3,另一个是 Wav。我让他们去工作。我的意思是,如果我选择 Wa
我的代码在除 IE7 之外的所有浏览器中都能正确显示,我不知道为什么。我已经浏览了很多有关 IE7 问题的线程,但无济于事。类似的 li 标签元素有六个。他们应该连续三个出现。这是 HTML 的一部分
input[type=file] { position: relative; text-align: right; -moz-opacity:0 ; filter:alpha(opacity: 0);
我在我的团队中使用 Phabricator 和 Arcanist 进行代码审查。 “arc land”命令很棒,但有一种情况它对我们不起作用。 我们有一个 xml 文件,其中包含一个链表(每个元素都引
我目前正在使用 Matlab File Exchange 上的 Toolbox Graph 来计算 3D 表面的曲率,发现它们非常有用 (http://www.mathworks.com/matlab
我是一名优秀的程序员,十分优秀!