求助
查看原帖
求助
486187
vvautedSN第一魔怔人楼主2021/8/13 22:02

求助,这么写为啥一分没有,思路是暴力枚举因数,加上因数在桶内出现的次数,我是脑瘫,求大佬解惑

#include <stdio.h>
#include <math.h>
#include <algorithm>
#define Maxn 200005
#define Maxa 500005
using namespace std;
long long int n,a[Maxn],blc[Maxa],cnt;
int main()
{
	scanf("%lld",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%lld",&a[i]);
	} 
	sort(a+1,a+n+1);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j*j<=n;j++)
		{
			if(a[i]%j) continue;
			if(j==a[i]/j) cnt+=blc[j];
			else cnt+=(blc[j]+blc[a[i]/j]);
		}
	}
	printf("%lld",cnt-n);
} 
2021/8/13 22:02
加载中...