Pagini recente » Cod sursa (job #44850) | Cod sursa (job #1490330) | Cod sursa (job #1408691) | Cod sursa (job #113657) | Cod sursa (job #2562529)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int v[100005],rasp,n,maxim;
int frecv[1000005];
bool apar[1000005];
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>v[i];
frecv[v[i]]++;
maxim=max(maxim,v[i]);
}
sort(v+1,v+n+1);
for(int i=1;i<=n;i++)
{
int rez=n-i;
int nr=v[i];
if(nr%2==0)
{
for(int j=v[i]+2;j<=maxim;j+=2)
{
apar[j]=1;
if(frecv[j])rez-=frecv[j];
}
while(nr%2==0)
nr/=2;
}
for(int j=3;j*j<=nr;j+=2)
{
if(nr%j==0)
{
for(int k=v[i]+j;k<=maxim;k+=j)
{
apar[k]=1;
if(frecv[k])rez-=frecv[k];
}
while(nr%j==0)
nr/=j;
}
}
if(nr>1)
{
for(int j=v[i]+nr;j<=maxim;j+=nr)
{
apar[j]=1;
if(frecv[j])rez-=frecv[j];
}
}
rasp+=rez;
}
fout<<rasp;
}