Pagini recente » Cod sursa (job #2186146) | Cod sursa (job #732837) | Cod sursa (job #752795) | Cod sursa (job #2075930) | Cod sursa (job #3258366)
#include <fstream>
#include <bitset>
using namespace std;
int n , m , a[100005] , nr , Max;
bool ok[1000005];
ifstream f("pairs.in");
ofstream g("pairs.out");
void ciur(int a[] , int &nr , int Max , int n){
for(int i=2;i<=Max/2;i++){
int k=0;
for(int j=i;j<=Max;j+=i){
if(ok[j]==true) k++;
}
if(k>=3) nr-=k*(k-1)/2;
else if(k==2) nr--;
}
}
int main()
{
f >> n;
for(int i=1;i<=n;i++){
f >> a[i];
Max=max(Max , a[i]);
ok[a[i]]=true;
}
nr=n*(n-1)/2;
ciur(a , nr , Max , n);
g << nr;
}