质数因子

题目描述

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

详细描述:

函数接口说明:

public String getResult(long ulDataInput)

输入参数:

long ulDataInput:输入的正整数

返回值:

String

输入描述:

输入一个long型整数

输出描述:

按照从小到大的顺序输出它的所有质数的因子,以空格隔开

输入例子:
180
输出例子:
2 2 3 3 5
import java.util.*;

public class Main{
    public static void main(String[] a){
        Scanner sc = new Scanner(System.in);

        while(sc.hasNext()){
            long l = sc.nextLong();

            System.out.print(getResult(l));
        }
    }
    public static String getResult(long ulDataInput){
        StringBuilder sb = new StringBuilder();

        if(ulDataInput <= 1){
            return "1";
        }
        while(ulDataInput!=1){
            for(int i=2;i<=ulDataInput;i++){
                if(ulDataInput%i==0){
                    sb.append(i + " ");
                    ulDataInput = ulDataInput/i;
                    break;
                }
            }
        }
        return sb.toString();
    }
}

如果我把找质数因子封装成函数如所示代码,结果正确;如果我把它们合并到主函数里显示时间超限!!!什么情况

时间: 2024-12-25 05:48:01

质数因子的相关文章

1-6质数因子

题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 最后一个数后面也要有空格 详细描述: 函数接口说明: public String getResult(long ulDataInput) 输入参数: long ulDataInput:输入的正整数 返回值: String 输入描述: 输入一个long型整数 输出描述: 按照从小到大的顺序输出它的所有质数的因子,以空格隔开.最后一个数后面也要有空格. 输入例子: 180 输出例子:

分解质数因子

var m,b,c=0,j=0; var arr=[]; function fjzys(k){ var i = 2; while(k>=i) { if (k%i == 0) { arr[j] = i; k/=i; i=2; j++; } else { i++; } } } fjzys(100); //求100的质数因子 for(var b = 0; b<(j-1); b++) { console.log(arr[b]); console.log('*'); } console.log(arr[

14:质数因子PrimeNum

14:题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 ) 详细描述: 函数接口说明: public String getResult(long ulDataInput) 输入参数: long ulDataInput:输入的正整数 返回值: String 输入描述:输入一个long型整数 输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开 输入例子:180 输出例子:2 2 3 3 5 package prctice01

欧拉项目第三题之最大质数因子

13195的质数因子有5,7,13和29. 600851475143的最大质数因子是多少? 这里可以肯定的是:1.数字很大,绝对不能暴力.2.如果这是一到OJ题,那么我们的目的就是尽量缩小这个数,减少计算量. 我们都知道,任何一个合数都是可以由他的所有质因素相乘得到的,比如15=3*3*3*3*3,12=2*2*3,60=2*2*3*5.(这些数都是我随便想的),好的,我们先看一个比较小的数60,现在我们要找它的最大质因子,我们可以从最小的奇数开始枚举(当然要先枚举2这个特殊的质数,除此之外的偶

【华为机试练习】质数因子

题目描述功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )输入描述:输入一个long型整数输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开.最后一个数后面也要有空格. 解法(C语言版): #include<stdio.h> #include<math.h> int isprime(int n) { int k, i; k = (int)sqrt(n); for(i = 2; i <= k; ++i) { i

【401】Python 求合数的所有质数因子

对于这样的一个题目来说,出看来,可能会想到判断是否为质数,但其实并不需要. 只要按照从2开始遍历,只要遇到可以整除的就是想要的质数,理由是,如果遇到合数的话,那么在此之前一定会遇到这个合数的质因子,因此不会存在这种情况. 另外就是遍历的后边界,其实随着number的质因子被找到,因此number在逐渐减小,因此之后的遍历中是包括其自身的,因此需要 number+1 代码1:这样的方法尤其适用于大数字,否则会有很多无用的计算 def all_divisors(number): nb_list =

华为机试测试- 质数因子

根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积. import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); Lo

(笔试题)质数因子Prime Factor

题目: Given any positive integer N, you are supposed to find all of its prime factors, and write them in the format N = p1^k1 * p2^k2 *...*pm^km. 输入描述: Each input file contains one test case which gives a positive integer N in the range of long int. 输出

[CareerCup] 7.7 The Number with Only Prime Factors 只有质数因子的数字

7.7 Design an algorithm to find the kth number such that the only prime factors are 3,5, and 7. 这道题跟之前LeetCode的那道Ugly Number II 丑陋数之二基本没有啥区别,具体讲解可参见那篇,代码如下: class Solution { public: int getKthMagicNumber(int k) { vector<int> res(1, 1); int i3 = 0, i