用java编写一个程序,提示用户输入一个正整数,然后以降序显示其最小的因子。

要求:(1) 写出类名为(MinimalElements)且含有main方法的能完整运行的程序。

(2) 求最小因子的方法getElements(int val)为静态,且在main方法中调用。

(3) 使用Stack类来保存最小因子,在main方法中输出Stack类型对象元素。
可又有点麻烦 谢谢各位大神

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) + "}";
    }

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-04-18
//如有问题可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());
        }
    }
}

用java程序编写以下的题目:1.有一个整数数组,其中存放着序列1,3,5,
2.编写一个程序,提示用户输入学生数量姓名和他们的成绩,并按照成绩的降序来打印学生的姓名。 3.编写一个程序,求出整数数组中最小元素的下标。如果这样的元素个数大于1,则返回下标最小的数的下标。 4.现在有如下的一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} 要求将以上数组中...

java 帮忙编写 输入多个分数 比较他们大小的程序 谢谢!
回答:分数,对于java就是个除法而已,用double保存除法结果,然后排序就行了。

java从键盘输入任意十个整数存入一个数组,求数组的平均值最小值并降 ...
public class Demo01 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int[] a = new int[10];int i = 0;\/\/ 输入10个整数while (true) {a[i] = sc.nextInt();i++;if (i == 10) {break;}}\/\/ 冒泡排序for (int k = 0; k < a.length -...

编写一个程序,提示用户输入学生个数,学生学号和他们的课程成绩,然后按 ...
import java.util.Scanner;class StudentInfo {private String stuno;private int score;public String getStuno() {return stuno;}public void setStuno(String stuno) {this.stuno = stuno;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}}pu...

编写java程序,输入学生的人数,然后逐个输入每个学生的姓名和成绩。统计...
import java.util.*;class score { public static void main(String[]args){ \/\/int [][] score=new int[3][4];int score;int sum=0;int avg;Scanner sc = new Scanner(System.in);for(int i=0;i<3;i++)\/\/这句话有意思,我们如果去定义了一个数值,如3那么就不需要写这个int []...

编写一个程序,提示用户输入学生个数,学生姓名和他们的成绩,然后按照学 ...
import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner reader = new Scanner(System.in);System.out.println("请输入学生个数");String strStuNum = reader.nextLine();int stuNum = Integer.parseInt(strStuNum);String[] sNames = new String[stu...

在java中,定义一个list,向里面添加几个数字,怎样实现选择性的输出,比如...
Circle c1 = new Circle(new Point(1.0,2.0), 2.0);Circle c2 = new Circle(5.0);System.out.println("c1:("+c1.getO().getX()+"," +c1.getO().getY()+"),"+c1.getRadius());System.out.println("c2:("+c2.getO().getX()+","+c2.getO().getY()+"),"+c2.get...

编写一个程序,提示用户输入学生个数,学生姓名和他们的成绩,然后按照学 ...
import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner reader = new Scanner(System.in);System.out.println("请输入学生个数");String strStuNum = reader.nextLine();int stuNum = Integer.parseInt(strStuNum);String[] sNames = new String[stu...

用java编写:以下5道题目 1.有一个整数数组,其中存放着序列1,3,5,7,
Integer[] a1 = {1,3,5,7,9,1,1,15,17,19};Integer[] a2 = new Integer[a1.length];for(int i=0;i<a1.length;i++){ a2[i] = a1[i];} Arrays.sort(a1);Integer min = a1[0];for(int i=0;i<a2.length;i++){ if(min==a2[i]){ System.out.println("最小元素...

编写一个JAVA小程序,从键盘输入3个数,求这三个数的最大值。
class Scan { public static void main(String... args) { Scanner scanner = new Scanner(System.in); List<Integer> L = new ArrayList<>(10); int i = 0; while (i < 3) { System.out.printf("输入第%d个整数:",(i+1)); L.add(scanner.nextInt()); ...

相似回答