目录
- 第一章、算法题
- 1.1)题目描述
- 1.2)文的盲的解题思路与答案
- 1.3)牛客链接
友情提醒:
先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。
第一章、算法题
1.1)题目描述
题目描述:
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
输入描述:
输入一个整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
示例:
1.2)文的盲的解题思路与答案
解题思路:
①试除法是一种简单有效的方法,可以快速找到给定数的质因数。首先,从最小的质数2开始,不断用给定数去除,如果能整除,则找到一个质因数,并将其记录下来。然后将商作为新的数,继续用质数去除,直到商变为1为止。这样就可以找到给定数的所有质因数。
②因为一个正整数最多有一个质因子大于其平方根,且只会是其本身所以我们判断数 num 是不是质数时,没必要从 2 一直尝试到 num 一样,此题中的大循环也大可不必写一个到 num 的循环,写到 根号num即可,如果此时数字还没有除数,则可判定其本身是一个质数,没有再除下去的必要了,直接打印其本身即可:
答案:
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+" ");
}
1.3)牛客链接
牛客网链接