您的位置:首页 > 其它

华为OJ训练之0046-170222-质数因子

2017-05-13 15:49 369 查看
===============================================

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

详细描述:

函数接口说明:

public String getResult(long ulDataInput)

输入参数:

long ulDataInput:输入的正整数

返回值:

String

知识点 排序

运行时间限制 10M

内存限制 128

输入

输入一个long型整数

输出

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

样例输入 180

样例输出 2 2 3 3 5

=================================================

一次通过100分

==================================================

package package02;

import java.util.Scanner;

//功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(
//
//如180的质数因子为2 2 3 3 5 )
//
//
//详细描述:
//
//函数接口说明:
//    public String getResult(long ulDataInput)
//输入参数:
//         long ulDataInput:输入的正整数
//返回值:
//        String
//
//
//知识点   排序
//运行时间限制    10M
//内存限制  128
//输入
//输入一个long型整数
//输出
//按照从小到大的顺序输出它的所有质数的因子,以空格隔开
//样例输入  180
//样例输出  2 2 3 3 5

public class oj046 {

public boolean isPrime(int n) {

boolean re = true;

for (int i = 2; i < n; i++) {
if (n % i == 0) {
re = false;
break;
}
}
if (n <= 1) {
re = false;
}
return re;
}

public void fun(int n)
{

for(int i=2;i<=n;i++)
{
if(isPrime(i)&&n%i==0)
{
System.out.print(i+" ");
n=n/i;
i=1;
}

if(n==0) break;

}

}

public static void main(String[] args) {

Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();

oj046 oj=new oj046();
oj.fun(n);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: