质数因子
import java.util.ArrayList;
import java.util.Scanner;
/** 功能:輸入一個(gè)正整數(shù),按照從小到大的順序輸出它的所有質(zhì)數(shù)的因子(如180的質(zhì)數(shù)因子為2 2 3 3 5 )* * 按照從小到大的順序輸出它的所有質(zhì)數(shù)的因子,以空格隔開(kāi)* */public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner in=new Scanner(System.in); long n=in.nextLong();System.out.println(getResult(n));}public static String getResult(long ulDataInput){ArrayList<Long> list=new ArrayList<Long>(); while(ulDataInput!=1){//直到數(shù)是1for(int i=2;i<=ulDataInput;i++){ if(ulDataInput%i==0){//如果能被整除if(isPrime((long) i)){list.add((long)i);//是質(zhì)數(shù)就添加到list中ulDataInput/=i;//把除的結(jié)果迭代break;}}} }//list轉(zhuǎn)換為字符串StringBuffer sb=new StringBuffer();for(int i=0;i<list.size();i++){sb.append(list.get(i));sb.append(" ");}sb.deleteCharAt(sb.length()-1);return sb.toString();}public static boolean isPrime(Long k){//判斷能被整除的因子是不是質(zhì)數(shù),質(zhì)數(shù)只有1和它本身的約數(shù),有其他約數(shù)的都不是質(zhì)數(shù)for(int i=2;i<Math.sqrt(k);i++){if(k%i==0){return false;}}return true;}}
總結(jié)
- 上一篇: Android中的Parcelable接
- 下一篇: 解析XML方式-DOM,SAX