985的因子對難題
time limit: 2 sec memory limit: 128 mb
submit: 138 solved: 35
submitstatusweb board
description
985有n個正整數,他想知道存在多少個不同的因子對(a[i], a[j])使得
1 <= i, j <= n && i != j && a[j] % a[i] == 0,其中i和j是元素的下標。
特別地,他認為(a[i],a[j])與(a[j],a[i])是一樣的因子對。
input
第一行輸入乙個整數t,代表有t組測試資料。
每組資料佔兩行,第一行輸入乙個n代表元素個數,下面一行輸入n個整數a。
注:1 <= t <= 30,1 <= n <= 1e5,1 <= a <= 1e6。
output
乙個整數代表最後的答案。
sample input
2 5
1 2 3 4 5
5 2 2 2 2 2
sample output
5 10
題解:陣列num記錄每乙個數的出現次數,然後陣列fac記錄某乙個數的因子數,然後就可以求出
#include
#include
#include
#include
using
namespace
std;
#define m 1000010
#define inf 0x3f3f3f
#define rcl(a, b) memset(a, b, sizeof(a))
int num[m], fac[m];
int main()
num[a]++;//記錄 a 出現了多少次
}for(int i=1; iif(!num[i]) continue;
for(int j=i+i; j//記錄 j 的因數有多少個 }}
int ans = 0;
for(int i=1; i<=maxx; i++)
ans += fac[i] * num[i];//因子與母體相乘
}printf("%d\n", ans);
}return
0;}
zzuli 1902 985的因子對難題
985有n個正整數,他想知道存在多少個不同的因子對 a i a j 使得 1 i,j n i j a j a i 0,其中i和j是元素的下標。特別地,他認為 a i a j 與 a j a i 是一樣的因子對。第一行輸入乙個整數t,代表有t組測試資料。每組資料佔兩行,第一行輸入乙個n代表元素個數,下...
zzulioj 1714 含蓄的情書
情書怎麼才比較含蓄?我來教你。首先你需要幾張4 4的 然後把你想寫的話填進去。比如 你想說的話是 abcdefghijklmnopqrstu shen me gui 那麼填入 就成了這樣 第一張表 abcd efgh ijkl mnop 第二張表 qrst u 由於這段話比16個字長,所以填了兩張表...
ZZULI OJ 1898 985的數字難題
time limit 1 sec memory limit 128 mb submit 255 solved 84 submit status web board 985有n個數,已知每次操作可以將其中不相同的兩個數乙個加 一 乙個減一,操作次數不限。問他最多可以得到多少個相同的數。第一行輸入乙個整...