我有一个类似这样的东西:
int f = 120;
for(int ff = 1; ff <= f; ff++){
while (f % ff != 0){
}
我的查找因子的循环有什么问题吗?我真的对for和while语句的工作原理感到困惑,所以它们很可能是完全错误的。
在这之后,我该如何将变量赋给上述因子呢?
发布于 2015-12-02 13:40:45
下面是如何获得给定数字的所有因子的方法。
public class Factors {
public static void main(String[] args){
int n = 420;
for(int i=2; i<=n; i++){
while(n%i==0){
System.out.println(i + "| " + n);
System.out.println(" -----");
n = n/i;
}
}
}
}
输出:
2| 420
-----
2| 210
-----
3| 105
-----
5| 35
-----
7| 7
-----
发布于 2016-02-23 02:06:44
public class Solution {
public ArrayList<Integer> allFactors(int a) {
int upperlimit = (int)(Math.sqrt(a));
ArrayList<Integer> factors = new ArrayList<Integer>();
for(int i=1;i <= upperlimit; i+= 1){
if(a%i == 0){
factors.add(i);
if(i != a/i){
factors.add(a/i);
}
}
}
Collections.sort(factors);
return factors;
}
}
上面的解决方案很简单,就像计算素因数一样。不同的是,对于每个质数因子,我们一直在计算乘积的另一部分,即reqd数。
发布于 2019-07-04 15:19:20
public static void printFactors(int number) {
if (number < 1 )
System.out.println("Invalid Value");
for (int i = 1 ; i <= number ; ++i) {
if ( number % i == 0)
System.out.println(i);
}
}
}
https://stackoverflow.com/questions/8647059
复制相似问题