D. 不再添加(Not Adding)

    传统题 文件IO:add 2000ms 256MiB

不再添加(Not Adding)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

读写要求

本题采用文件读写,请在提交代码时使用正确的文件名,否则会导致 RE

输入文件:add.in

输出文件:add.out

题目描述

你有一个由 nn 个不同整数组成的数组 a1,a2,,ana_1,a_2,\dots,a_n。你可以对其执行以下操作:

  • 从数组中选出两个元素 aia_iaja_j (iji\neq j),使得 gcd(ai,aj)\gcd(a_i,a_j) 不在当前数组中,然后将 gcd(ai,aj)\gcd(a_i,a_j) 添加到数组末尾。其中 gcd(x,y)\gcd(x,y) 表示 xxyy 的最大公约数。

注意数组在每次操作后会改变,后续操作将在新数组上进行。

请问你最多能执行多少次这样的操作?

输入格式

第一行一个整数 nn (2n1062\le n\le 10^6)。

第二行 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n (1ai1061\le a_i\le 10^6)。所有 aia_i 互不相同。

输出格式

输出一行一个整数,表示最多能执行的操作次数。

样例输入

5
4 20 1 25 30
3

样例解释

一种最大化操作次数的方式为:

  • 选取 i=1,j=5i=1,j=5,添加 gcd(4,30)=2\gcd(4,30)=2 到数组末尾。
  • 选取 i=2,j=4i=2,j=4,添加 gcd(20,25)=5\gcd(20,25)=5 到数组末尾。
  • 选取 i=2,j=5i=2,j=5,添加 gcd(20,30)=10\gcd(20,30)=10 到数组末尾。

可以证明无法执行超过 33 次操作。

3
6 10 15
4

样例解释

可以依次添加 3,1,5,23,1,5,2

数据范围

  • 2n1062\le n\le 10^6
  • 1ai1061\le a_i\le 10^6
  • 所有 aia_i 互不相同

周赛#1029(div2)复现赛

未参加
状态
已结束
规则
IOI
题目
5
开始于
2026-6-6 21:00
结束于
2026-6-13 13:00
持续时间
1.5 小时
主持人
参赛人数
4