解题思路
设数组中一共有 n 个质数,要求满足 i=j 且 ai+aj 为合数的有序二元组 (i,j) 个数。
先考虑两个质数相加什么时候不是合数。
核心性质
题目内容
在数论中,质数是大于 1且仅能被 1和自身整除的正整数;合数是大于1 且除了 1和自身外还有其他正因子的正整数。
给定一个长度为n 的数组 {a1,a2,…,an},其中每个ai都是质数。请你计算满足ai+aj为合数的有序二元组(i,j)的数量,其中 i=j。
输入描述
第一行输入一个整数 n(1≤n≤2×105),表示数组的长度;
第二行输入 n个整数 a1,a2,…,an(1≤ai≤2×105),表示数组 {ai},并保证每个 ai 都是质数。
输出描述
输出一个整数,表示满足ai十aj为合数的二元组(i,j)的个数
样例1
输入
5
2 2 3 3 2
输出
8
说明
数组为 {2,2,3,3,2}。所有满足i=j的有序二元组 (i,j) 共有 5×4=20 个。其中满足 ai+aj 为合数的二元组有:
- ai=2,aj=2:和为 2+2=4(合数)。由于数组中有 3个 2,可以组成3×2=6 个这样的有序对。
- ai=3,aj=3:和为 3+3=6(合数)。由于数组中有2 个3,可以组成 2×1=2个这样的有序对。
总计 6+2=8个。