小工具知识网

当前位置: 首页 > 行业知识 > 牛客网 华为机试 质因子

行业知识

牛客网 华为机试 质因子

2026-11-06 09:09:09 来源:互联网转载

index.php/tags-41973.html" >���题是要求一个数的所有质因子,包括重复的,比如180。首先质数就是素数,其只能被1和其本身整除(1不是质数)。比如2的因子只有1和2,3的因子只有1和3,5的因子只有1和5。

比如题中的180,能被2整除,得到90,再被2整除得到45,再被3整除得到15,再被3整除得到5,最后5是质数,所以结果就是2 2 3 3 5

本题中,我们不需要遍历到这个正整数,只需要到这个数的平方根就好,因为一个数的平方根乘以平方根等于这个数,这个数的因子一定有一个比平方根小,另一个比平方根大。而质因子一定是那个小的,因为大的可能有其他的因子。

所以我们首先从2开始遍历,如果能整除说明2是质因子,这时候我们要把i减去1,防止漏掉重复的质因子,比如180的2和3,都是重复的。如果我们遍历到正整数的平方根,则直接将这个正整数返回就好,说明它没有其他的质因子了,只有它本身。比如7,它的平方根比2大,比3小,当到2的时候不能够整除,到3的时候已经比他的平方根要大了,直接返回7就好,它的质因子只有它的本身。

import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        int m = sc.nextInt();        int n = (int) Math.sqrt(m);//算术平方根函数        for (int i = 2; i = n) {                    System.out.print(m + "");                    break;                }            }        }    }}

上一篇:mqtt腾讯云服务器怎么搭建?

下一篇:【Python基础】一文搞懂:Python 中 csv 文件的写入与读取