传统题 文件IO:prime 1000ms 512MiB

质倍数对

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

题目背景

数学课上老师讲了质数。小 Z 发现班里同学的学号两两之间有一种有趣的关系:有的学号恰好是另一个学号的「质数倍」,比如 66 是 33 的 22 倍,22 是质数。小 Z 想数一数这样的关系一共有多少对。

题目描述

本题使用文件输入输出:输入文件名为 prime.in,输出文件名为 prime.out。

给定 nn 个正整数 a1,a2,…,ana_1, a_2, \dots, a_n。

如果一对下标 (i,j)(i, j) 满足 i≠ji \ne j,并且存在一个质数 pp 使得 aj=ai×pa_j = a_i \times p,我们就称 (i,j)(i, j) 是一个质倍数对。

请你求出质倍数对的个数。注意 (i,j)(i, j) 与 (j,i)(j, i) 是不同的下标对。

输入格式

输入文件名为 prime.in。

第一行一个整数 nn。

第二行 nn 个正整数 a1,a2,…,ana_1, a_2, \dots, a_n,相邻两个数之间用一个空格隔开。

输出格式

输出文件名为 prime.out。

一行一个整数,表示质倍数对的个数。

样例 1 输入

5
2 4 6 3 12

样例 1 输出

5

样例 1 解释

满足条件的下标对有 55 个(括号里是对应的数):

  • (1,2)(1, 2):4=2×24 = 2 \times 2;
  • (1,3)(1, 3):6=2×36 = 2 \times 3;
  • (4,3)(4, 3):6=3×26 = 3 \times 2;
  • (2,5)(2, 5):12=4×312 = 4 \times 3;
  • (3,5)(3, 5):12=6×212 = 6 \times 2。

(1,5)(1, 5) 不满足条件,因为 12=2×612 = 2 \times 6 而 66 不是质数;(4,5)(4, 5) 同理(12=3×412 = 3 \times 4)。

样例 2 输入

8
1 1 2 2 2 4 3 9

样例 2 输出

12

样例 2 解释

两个 11 与三个 22 之间有 2×3=62 \times 3 = 6 对(2=1×22 = 1 \times 2);三个 22 与一个 44 之间有 33 对;两个 11 与一个 33 之间有 22 对;33 与 99 之间有 11 对。共 6+3+2+1=126 + 3 + 2 + 1 = 12 对。

注意:两个相等的数不构成质倍数对(11 不是质数);11 与 44、11 与 99 也不构成(44、99 不是质数)。

样例 3

见附件 prime3.in 与 prime3.ans。

这个样例满足 ai≤1000a_i \le 1000。

样例 4

见附件 prime4.in 与 prime4.ans。

这个样例满足所有测试点的最大规模。

数据范围

对于所有测试点,保证 1≤n≤2×1051 \le n \le 2 \times 10^5,1≤ai≤1061 \le a_i \le 10^6。

测试点编号 n≤n \le ai≤a_i \le
1∼21 \sim 2 1010 2020
3∼43 \sim 4 20002000 10610^6
5∼65 \sim 6 2×1052 \times 10^5 10001000
7∼107 \sim 10 10610^6

CSP-J2026(claude+luogu)

未参加
状态
已结束
规则
OI
题目
8
开始于
2026-10-17 14:00
结束于
2026-10-19 16:00
持续时间
50 小时
主持人
参赛人数
17