java - 找到作为 C 因数的最小整数?

标签 java numbers factorization

我需要有关此方法的帮助 最小因子

public static int smallestFactor(int C) 该函数以整数 C 作为参数,并返回除 1 以外的 C 的因数的最小整数。

参数:C - 要分解的整数。

前提条件:C必须大于1。

返回值:C 的最小因子。

public class Factor
{       
public static long smallestFactor(int C)
    {   
    for (int i = 2; i*i<= C; i++) 
    {   
        while (C % i == 0) 
        {
         System.out.print(i + " "); 
         C = C / i;
        }
    }
        return C;
    }
}

我需要找到最小的因子 但我不确定该怎么做

最佳答案

需要使用if代替while,如果找到则返回i

public static long smallestFactor(int C)
{
    for (int i = 2; i*i<= C; i++) 
    {   
        if (C % i == 0)
        {
            return i;
        }
    }

    return C;
}

您还可以进行其他改进,但这应该让您入门。

关于java - 找到作为 C 因数的最小整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12419808/

相关文章:

java - 解析 joda-time

java - 强力大整数分解

python - 我有一个数字素因数的 Python 列表。我如何(以 Python 方式)找到所有因素?

rsa - 我的 i-7 处理器需要多长时间才能分解 1024 位数字(仅包含 2 个质因数)

java - Gemfire - 缓存创建时出现 IllegalStateException

java - 如何解析可能具有不同日期格式的字符串输入?

javascript - 如何在javascript中将数字格式化为字符串

javascript - 测试一个值是奇数还是偶数

java - 在 Java 中从线程的上下文类加载器中排除某些类?

字符串 Rabin-Karp 基本数字符号