华为机试:质数因子
题目描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )
最后一个数后面也要有空格
详细描述:
函数接口说明:
public String getResult(long ulDataInput)
输入参数:
long ulDataInput:输入的正整数
返回值:
String
输入描述:
输入一个long型整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。
示例1
输入
180
输出
2 2 3 3 5
Java:
1 import java.util.Scanner; 2 3 public class Main { 4 5 /** 6 * 质数因子 7 * 8 * @param ulDataInput 输入的正整数 9 * @return 所有质数因子组成的字符串 10 */ 11 public static String getResult(long ulDataInput){ 12 String s = ""; 13 while(ulDataInput!=1){ 14 for(long i = 2;i<=ulDataInput;i++){ 15 if(ulDataInput%i==0){ 16 s = s + i + " "; 17 ulDataInput = ulDataInput/i; 18 break; 19 } 20 } 21 } 22 return s; 23 } 24 public static void main(String[] args) { 25 Scanner sc=new Scanner(System.in); 26 while(sc.hasNext()){ 27 long num = sc.nextLong(); 28 System.out.println(getResult(num)); 29 } 30 sc.close(); 31 } 32 33 }