返回首页 返回题库

相等序列

C++ 中等 GESP五级真题 #质因数分解#中位数#贪心

题目描述

题面描述

小A有一个包含个正整数的序列。小A每次可以花费1个金币执行以下任意一种操作:

  • 选择序列中一个正整数(),将变为,为任意质数;
  • 选择序列中一个正整数(),将变为,为任意质数,要求能被整除。

小A想请你帮他计算出令序列中所有整数都相同,最少需要花费多少金币。

输入格式

第一行一个正整数,含义如题干所示。

第二行包含个正整数,代表序列。

输出格式

输出一行,代表最少需要花费的金币数量。

样例1

输入:

5
10 6 35 105 42

输出:

8

数据范围

对于60%的测试点,保证。

对于所有测试点,保证。

时间与内存限制

时间限制:1.0 s

内存限制:512.0 MB

💡 查看提示(先自己想一想再看)
核心考察质因数分解和中位数性质。解题思路:1. 每个数的质因数操作是独立的,可对每个质数分别计算最少操作次数;2. 对于每个质数,统计所有数中该质数的指数,将这些指数调整为相同值的最少操作次数等于各指数与中位数的绝对差之和;3. 注意处理质因数指数为0的情况(即数不包含该质数的情况)。
⚙ 开始做这道题 0 人做过 · 0 收藏 · 3 浏览

讨论(0)