求一个正整数的所有质因数(素因数)的思路启发。

质数因子

http://www.nowcoder.com/questionTerminal/196534628ca6490ebce2e336b47b3607

题目描述:
功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )

最后一个数后面也要有空格
思路启发:
根据表达式 2*2*3*3*5=180 ,我们可以想到 180/2=90=2*3*3*5 ,同样 90/2=45=3*3*5 ,直至 5/5=1。可以想到设置一个候选数pom=2开始被正整数180除,若能整除则记录,正整数转成180整除pom的得数;否则pom++,寻找下一个整除正整数的候选数。一直循环直至剩余的正整数小于pom。
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        while(input.hasNextLong()){
            long num = input.nextLong();
            System.out.println(getResult(num));
        }
    }
    
    public static String getResult(long ulDataInput){
        int pom = 2;
        StringBuilder output = new StringBuilder();
        while(ulDataInput >= pom){
            if (ulDataInput % pom == 0){
                ulDataInput /= pom;
                output.append(pom).append(" ");
            }
            else pom++;
        }
        return output.toString();
    }
}


全部评论
你这也太慢了吧。。。。。。。。哭笑
点赞 回复 分享
发布于 2022-03-19 20:37
运行超时
点赞 回复 分享
发布于 2021-04-23 10:15

相关推荐

点赞 评论 收藏
分享
刘湘_passion:出国旅游?那就小心你的腰子咯
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务