这道题目说是中等难度,但是真的很容易坑人,先看题目:
坑一:题目说的所有“质因子”,其实是质数的因子,首先是输入数的因子,然后必须是质数,很直观的想法就是先把输入数的所有因子都列出来,再一个个判断是否质数,这道题就解决了。但是!它这题目很奇怪!例如180为什么会连续输出2 ???其实它的本意是:180 / 2 = 90;这里2是一个质因子,所以输出,再90 / 2 = 45 ,这里2又是一个质因子,又输出,再下来 45 / 3 = 15,3也是质因子,又输出…
原来是输入数每次找到一个因子后!!都必须除掉它!!这个太坑了吧???你只说找到每一个质因子,没说要不断除以它啊!!
不过想明白它的骚操作后,写出来下面代码:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
long num = sc.nextLong();
// 找出所有因子
for(int i=2;i<=num;){
if(num%i == 0