zzulioj 1902 (985的因子對難題)

2021-07-16 08:42:33 字數 1194 閱讀 1867

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個數,已知每次操作可以將其中不相同的兩個數乙個加 一 乙個減一,操作次數不限。問他最多可以得到多少個相同的數。第一行輸入乙個整...