思路:对于每个数,先将其分解质因数,然后统计每个质因子出现的次数,最后找出出现次数最多的质因子即可。使用unordered_map来存储每个质因子出现的次数,遍历map找到出现次数最多的质因子。

注意:需要筛选出2~100000范围内的质数,可以使用筛法(埃氏筛法或欧拉筛法)来实现。另外,分解质因数时可以从小到大枚举质数,遇到能整除的就除以该质数,直到无法整除为止,然后再枚举下一个质数。

时间复杂度:O(nlogn)

参考代码:

C++使用iostream和cmath实现C++ 使用分解质因子的方法实现给定n个正整数每个正整数都包含若干种质因子现在小明想知道这些质因子中哪种质因子出现的次数最多注意每个数字中出现的每种质因子只统计一次?输入描述输入数据共两行。第一行包含一个整数n表示数字个数。第二行包含以空格隔开的n个整数每个数字在2~100000之内。输出描述输出一个正整数表示出现最多的质因子如果有多个质因子出现一样多输出

原文地址: https://www.cveoy.top/t/topic/gQwd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录