gpt4 book ai didi

java - n 的数字积的最小数

转载 作者:行者123 更新时间:2023-12-01 12:39:50 25 4
gpt4 key购买 nike

我需要找到数字乘积等于给定数字的最小数字。

import java.util.Scanner;

class timus_1014_2 {

public static void main(String[] args){
int[] arr = new int[10]; // eskan ban@ chem imanum inchi a statik,
int prod = 1;
int j = 0;

Scanner in = new Scanner(System.in);
int n = in.nextInt();
for (int i = 2; i < 10; ++i){
if (n % i == 0) {
arr[j] = i;
j++;
}
}
prod = prod * arr[j];

System.out.print(prod);

}
}

逻辑有问题,问题出在哪里,当我输入 10 时,它应该给出 25,但它给出 0。请给出如何让程序找到一个数字的想法,该数字的乘积是给定的数字。

最佳答案

如果我正确理解你的问题,你需要一个数字,其数字乘积等于数字N。既然你要求新的算法,你可以检查以下代码。

逻辑:

注意:对于质因数小于 10 的数字

  1. 获取 9 -> 2 中的所有因数
  2. 添加到列表
  3. 反向打印或使用堆栈代替列表
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

class Main {

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter number");
int num = in.nextInt();

List<Integer> lst = new ArrayList<>();

for (int p = 9; p >= 2; p--) {
while (num % p == 0) {
num /= p;
lst.add(p);
}
}

String smallestNumber = "";
for (int i = lst.size() - 1; i >= 0; i--) {
smallestNumber = smallestNumber + lst.get(i);
}
System.out.println("Smallest number : " + smallestNumber);
}
}

输出:

Enter number
10
Smallest number : 25

Enter number
144
Smallest number : 289

Enter number
12
Smallest number : 26

关于java - n 的数字积的最小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25218836/

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