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

要求:(1)写出类名为(MinimalElements)且含有main方法的能完整运行的程序。(2)求最小因子的方法getElements(intval)为静态,且在ma... 要求:(1) 写出类名为(MinimalElements)且含有main方法的能完整运行的程序。

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

(3) 使用Stack类来保存最小因子,在main方法中输出Stack类型对象元素。
可又有点麻烦 谢谢各位大神
展开
 我来答
gdmmd
推荐于2017-12-15 · TA获得超过1279个赞
知道大有可为答主
回答量:1581
采纳率:66%
帮助的人:1012万
展开全部
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) + "}";
    }

}
百度网友825109a
2018-04-18 · TA获得超过157个赞
知道小有建树答主
回答量:113
采纳率:79%
帮助的人:41.4万
展开全部
//如有问题可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());
        }
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式