最终要求整个数组的最大公约数大于 1。
假设最终所有元素都有一个公共因数 d>1,那么 d 一定至少包含一个质因数 p。因此,最终所有元素也一定都能被某个质数 p 整除。
对于一个固定的质数 p:
在一套传感指标采集系统中,共有 n 个节点,每个节点都会产生一个正整数指标。为了让所有节点的数据具有更明显的共同特征,希望这些指标能够共享一个大于 1 的公因数。
给定长度为 n 的正整数数组
v1,v2,…,vn要求最终满足
gcd(v1,v2,…,vn)>1.你可以执行任意次调整操作。每次选择一个下标 i,将 vi 修改为任意正整数。
请计算,为满足上述条件,至少需要修改多少个位置。
第一行读入一个整数 n (1≤n≤120000),表示指标的数量。
第二行读入 n 个整数 v1,v2,…,vn (1≤vi≤900000),表示每个位置当前的指标值。
输出一个非负整数,表示使整个数组的最大公约数大于 1 所需的最少修改次数。
输入
4
8 12 20 28
输出
0
说明
当前数组中所有元素都能被 4 整除,因此
gcd(8,12,20,28)=4>1.已经满足要求,无需修改任何位置。
输入
4
1 1 1 1
输出
4
说明
整数 1 不含任何大于 1 的因数,因此不存在一个大于 1 的整数能够整除当前的任意一个元素。
所以四个位置都必须进行修改,最少需要 4 次操作。
输入
6
14 21 25 35 9 6
输出
3
说明
例如选择质数 3 作为所有元素最终共有的因数。
当前能够被 3 整除的元素为 21,9,6,共 3 个,因此只需要将剩余的 14,25,35 修改为 3 的倍数,共进行 3 次操作。
选择质数 7 时,同样只有 14,21,35 三个元素可以保留;其他质数能够直接整除的元素不会更多,因此最少需要修改 3 个位置。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册