Pagini recente » Cod sursa (job #1089564) | Cod sursa (job #93906) | Cod sursa (job #1462779) | Cod sursa (job #1772259) | Cod sursa (job #2127693)
#include <fstream>
#include <algorithm>
using namespace std;
bool fr[1000001],ok[1000001];
int prim[20],v[100001];
int main()
{ int x,i,nr,j,n,k,d,Max=0,p;
ifstream f("pairs.in");
ofstream g("pairs.out");
f>>n;
for (i=1;i<=n;++i) {
f>>v[i];
Max=max(Max,v[i]);
fr[v[i]]=1;
}
sort(v+1,v+n+1);
long long sol=0,sum;
for (i=1;i<=n;++i) {
sum=n-i;
x=v[i];
d=2;
nr=0;
while (x>1) {
if (x%d==0) {
++nr;
prim[nr]=d;
while (x%d==0)
x/=d;
}
++d;
}
for (j=1;j<=nr;++j)
for (k=v[i]/prim[j]+1;prim[j]*k<=Max;++k)
if (fr[prim[j]*k]==1 && ok[prim[j]*k]==0)
ok[prim[j]*k]=1,--sum;
for (p=1;p<=Max;++p)
ok[p]=0;
sol+=sum;
}
g<<sol;
return 0;
}