用java编写一个程序,提示用户输入一个正整数,然后以降序显示其最小的因子。
要求:(1)写出类名为(MinimalElements)且含有main方法的能完整运行的程序。(2)求最小因子的方法getElements(intval)为静态,且在ma...
要求:(1) 写出类名为(MinimalElements)且含有main方法的能完整运行的程序。
(2) 求最小因子的方法getElements(int val)为静态,且在main方法中调用。
(3) 使用Stack类来保存最小因子,在main方法中输出Stack类型对象元素。
可又有点麻烦 谢谢各位大神 展开
(2) 求最小因子的方法getElements(int val)为静态,且在main方法中调用。
(3) 使用Stack类来保存最小因子,在main方法中输出Stack类型对象元素。
可又有点麻烦 谢谢各位大神 展开
2个回答
展开全部
package com.leejiliang.HomeworkDemo2;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class MinimalElements {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个整数:");
int inner = input.nextInt();
Stack stack = getElements(inner);
System.out.println(inner + "的所有最小银子为:" + stack);
}
/*
* 此方法摘抄自网上
*/
public static Stack getElements(int val) {
Stack stack = new Stack();
凯衡前 int i;
拦歼for (i = 2; i <= val;)// 注意是小于等于
{
if (val % i == 0) {
盯清 stack.getList().add(i);
val /= i;// 记得每次进行除i
} else
i++;// 因为求的是最小因子,所以只有在i小的时候不能除尽,才进行i加一的操作,
}
return stack;
}
}
class Stack {
List<Integer> list = new ArrayList<Integer>();
public List<Integer> getList() {
return list;
}
public void setList(List<Integer> list) {
this.list = list;
}
@Override
public String toString() {
String s = "{";
for (Integer i : list) {
s += i + ",";
}
return s.substring(0, s.length() - 1) + "}";
}
}
展开全部
//如有问题可QQ联系我:1609299076
import java.util.Scanner;
import java.util.Stack;
public class MinimalElements {
private static Stack<Integer> getElements(int val) {
Stack<Integer> result = new Stack<Integer>();
int prime = 2;
while (val > 1) {
while (!isPrime(prime)) {
prime++;
}
穗枣 while (val % prime == 0) {
result.push(prime);
val = val 猜差拆/ prime;
}
prime++;
}
return result;
}
private static boolean isPrime(int num) {
boolean flag = true;
for(int i = 2; i < num; i++){
if(num % i == 0){
flag = false;
break;
}
}
return flag;
}
public static void main(String[] args) {
庆或 System.out.println("请输入要计算的整数: ");
Scanner scanner = new Scanner(System.in);
int toComputed = scanner.nextInt();
Stack<Integer> elements = getElements(toComputed);
while (!elements.isEmpty()) {
System.out.println(elements.pop());
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询