华为机试-006-简单-HJ6.质数因子
一、描述
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
1.1、输入描述
输入一个整数
1.2、输出描述
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
二、示例
2.1、示例1
输入:
180
输出:
2 2 3 3 5
三、答案(java)
3.1、方法一
package com.tzq.hwod;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long num = scanner.nextLong();
for (long i = 2; i <= num; ++i) {
while (num % i == 0) {
System.out.print(i + " ");
num /= i;
}
}
System.out.println();
}
}
3.2、方法二
package com.tzq.hwod;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long num = scanner.nextLong();
long k = (long) Math.sqrt(num);
for (long i = 2; i <= k; ++i) {
while (num % i == 0) {
System.out.print(i + " ");
num /= i;
}
}
System.out.println(num == 1 ? "" : num + " ");
}
}
四、答案(python 3)
4.1、方法一
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import math
n = int(input())
for i in range(2, int(math.sqrt(n))+1):
while n % i == 0:
print(i, end=' ')
n = n // i
if n > 2:
print(n)