gpt4 book ai didi

java - 有没有更好的迭代方法来找到可整除的数字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:29:07 25 4
gpt4 key购买 nike

我正在尝试解决这个问题:"2520 是能被 1 到 10 中的每一个数整除而没有余数的最小数。

能被 1 到 20 的所有数字整除的最小正数是多少?”

请不要告诉我答案,我真的想自己解决。我所需要的只是关于问题的数学方面的建议。问题是每个周期都添加一个不是一个好主意,因为这个过程太慢了。还是变量类型不长有问题?

我试图得到一个数,它可以被(1 和 10)甚至(1 和 17)之间的所有数字整除,并且该算法运行良好。

int in_num = 1;
int score = 0;
public void calculate() {
while (true) {
score = 0;
for (int x = 1; x < 21; x++) {
if ((in_num%x) == 0) {
score++;
}
}
System.out.println("Number " + in_num + " has " + score );
if (score == 20) {
System.out.println(in_num);
break;
}
in_num++;
}

我期待特定的整数,但我得到了无限循环。

最佳答案

这还不够吗?

将 1 到 20 中的每个质数相乘得到这个数!另外,用 16 代替 2,用 9 代替 3。

Long number = 2 ^ 4 * 3 ^ 2 * 5 * 7 * 11 * 13 * 17 * 19L;
System.out.println(number);

详细答案:

我们需要找到每个小于 20 的素数。之后,对于每个素数,我们必须计算在小于 20 的情况下我们可以对素数求幂的数。

例如,如果我们将 2 与自身相乘四次,它仍然小于 20 (16)。但是如果我们计算2到五分之一,就是大于20的32。

我们将对所有其他素数执行相同的操作。通过这种计算,实际答案将是这样的:

Long number = 2 ^ 4 * 3 ^ 2 * 5 ^ 1 * 7 ^ 1 * 11 ^ 1 * 13 ^ 1 * 17 ^ 1 * 19L ^ 1;

关于java - 有没有更好的迭代方法来找到可整除的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57535650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com