【Gym 100947I】What a Mess
BUPT 2017 summer training (for 16) #1D
题意
找到n个数里面有多少对具有倍数关系。\(1 ≤ n ≤ 10^4,2 ≤ a_i ≤ 10^6\)
题解
枚举一个数,和它的倍数。
代码
#include <cstdio>
#include <cstring>
int n,t,b[1000001];
int main(){
scanf("%d",&t);
while(t--){
memset(b,0,sizeof b);
scanf("%d",&n);
for(int i=1,a;i<=n;++i){
scanf("%d",&a);
++b[a];
}
int ans=0;
for(int i=2;i<=1000000;++i)if(b[i]){
ans+=b[i]*(b[i]-1)/2;
for(int j=i*2;j<=1000000;j+=i)
ans+=b[i]*b[j];
}
printf("%d\n",ans);
}
return 0;
}
┆凉┆暖┆降┆等┆幸┆我┆我┆里┆将┆ ┆可┆有┆谦┆戮┆那┆ ┆大┆始┆ ┆然┆
┆薄┆一┆临┆你┆的┆还┆没┆ ┆来┆ ┆是┆来┆逊┆没┆些┆ ┆雁┆终┆ ┆而┆
┆ ┆暖┆ ┆如┆地┆站┆有┆ ┆也┆ ┆我┆ ┆的┆有┆精┆ ┆也┆没┆ ┆你┆
┆ ┆这┆ ┆试┆方┆在┆逃┆ ┆会┆ ┆在┆ ┆清┆来┆准┆ ┆没┆有┆ ┆没┆
┆ ┆生┆ ┆探┆ ┆最┆避┆ ┆在┆ ┆这┆ ┆晨┆ ┆的┆ ┆有┆来┆ ┆有┆
┆ ┆之┆ ┆般┆ ┆不┆ ┆ ┆这┆ ┆里┆ ┆没┆ ┆杀┆ ┆来┆ ┆ ┆来┆