首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >查找给定整数的因子

查找给定整数的因子
EN

Stack Overflow用户
提问于 2011-12-28 00:49:11
回答 11查看 75.7K关注 0票数 12

我有一个类似这样的东西:

代码语言:javascript
复制
int f = 120;
for(int ff = 1; ff <= f; ff++){
    while (f % ff != 0){            
}

我的查找因子的循环有什么问题吗?我真的对for和while语句的工作原理感到困惑,所以它们很可能是完全错误的。

在这之后,我该如何将变量赋给上述因子呢?

EN

回答 11

Stack Overflow用户

发布于 2015-12-02 13:40:45

下面是如何获得给定数字的所有因子的方法。

代码语言:javascript
复制
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;
            }
        }
    }
}

输出:

代码语言:javascript
复制
2| 420
 -----
2| 210
 -----
3| 105
 -----
5| 35
 -----
7| 7
 -----
票数 11
EN

Stack Overflow用户

发布于 2016-02-23 02:06:44

代码语言:javascript
复制
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数。

票数 11
EN

Stack Overflow用户

发布于 2019-07-04 15:19:20

代码语言:javascript
复制
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);
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8647059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档