Pagini recente » Cod sursa (job #2338056) | Cod sursa (job #105175) | Cod sursa (job #193015) | Cod sursa (job #2561232) | Cod sursa (job #110534)
Cod sursa(job #110534)
#include<fstream.h>
long v[100001],nr;
int prim(long x, long y){
long i;
if(x<y){
if(x%2==0 && y%2==0) return 0;
for(i = 2; i <= x/2; i++)
if(x%i == 0 && y%i==0) return 0;
return 1;
}
else{ if(x%2==0 && y&2==0) return 0;
for(i = 2; i <= y/2; i++)
if(x%i == 0 && y%i==0) return 0;
return 1;
}
}
int binar(long m, int x, int y){
int i,t;
if(m==v[x] || m==v[y]) return 0;
if(m>=v[y]){ for(i=nr;i>=y;i--) v[i+1]=v[i];
++nr;
v[y+1]=m;
return 1;}
if(m<=v[x]){ for(i=nr;i>=x;i--) v[i+1]=v[i];
++nr;
v[x]=m;
return 1;
}
while(y>x){
t=(y+x)/2;
if(v[t]==m) return 0;
if(m<v[t]) y=t-1;
else x=t+1;
if(m==v[x]) return 0;
if(m==v[y]) return 0;
}
if(m<=v[x] && m!=v[x]) { for(i=nr;i>=x;i--) v[i+1]=v[i];
++nr;
v[x]=m;
return 1;}
else { if(m==v[x] || m==v[y]) return 0;
for(i=nr;i>=y;i--) v[i+1]=v[i];
++nr;
v[y+1]=m;
return 1;}
}
int main(){
long i,j,n,ct=0,p;
ifstream f("pairs.in");
ofstream g("pairs.out");
f>>n;
for(i=1;i<=n;i++){ f>>p;
binar(p,1,nr);
}
for(i=1;i<=nr;i++){
for(j=i+1;j<=nr;j++){
if(prim(v[i],v[j])==1) ++ct;
}
}
cout<<ct<<"\n";
f.close();
g.close();
return 0;
}