题解 | #质数因子#

质数因子

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

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;

/**

  • 质数因子 / public class IntegerFactorization { /*
    • 描述
    • 功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)
    • (如180的质因子为2 2 3 3 5 )
    • 数据范围:1 ≤ n ≤ 2 × 10^(9) +14
    • 输入描述:
    • 输入一个整数
    • 输出描述:
    • 按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
    • 示例1
    • 输入:180
    • 输出:2 2 3 3 5
    • 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 */ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; while ((str = br.readLine()) != null) { int num = Integer.parseInt(str); StringBuilder sb = new StringBuilder(); for (int i = 2; i <= Math.sqrt(num); i++) { //此处为了因子是从小到大加入字符串缓冲区 if (num % i == 0) { sb.append(i).append(" "); num = num / i; i--; // 保证了若i是因子,那么取到原数的因子后,继续从i开始 } } sb.append(num).append(" "); System.out.println(sb.toString()); } } }
全部评论

相关推荐

09-15 12:15
北京大学 Java
geiedaada:倒反天罡,北大爷团子都敢拒!
点赞 评论 收藏
分享
今天 08:32
门头沟学院 Java
武汉启云方 Java 13k每月,公积金5%
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务