这里是代码:
#include <bits/stdc++.h>
#define ll int
#define llint long long
llint Maxn;
ll n,b[2000001],num,p,maxn;
using namespace std;
int main(){
scanf("%d",&n);
for(ll i=1;i<=n;i++){
scanf("%d",&num);
maxn=max(maxn,num);
for(ll j=1;j<=sqrt(num);j++){
if(!(num%j)){
if(j==num/j){
b[j]+=1;
continue;
}
b[j]+=1,b[num/j]+=1;
}
}
}
for(ll i=1;i<=maxn;i++)
if(b[i]>=2)
Maxn=max(Maxn,1ll*b[i]*i);
printf("%lld",Maxn);
return 0;
}
为什么第 15 行和第 18 的 += 改成 ++ 会多 TLE 一个点,为什么这里的所有变量名改成 long long 类型,会多 TLE 两个点啊?