Cod sursa(job #109313)

Utilizator alex_dincaDinca Alexandru-Nicolae - UPB alex_dinca Data 25 noiembrie 2007 10:10:11
Problema Pairs Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 1, Clasa a 10-a Marime 0.93 kb
#include<fstream.h>
#include<alloc.h>
typedef struct Nod {
	int inf;
	struct Nod *urm;
	};

typedef struct Nod *Lista;
Lista p, pr, ul, q;
long int i, n, v, d, nr;

void citire(){
pr=ul=NULL;
ifstream fin("pairs.in");
fin>>n;
for(i=1;i<=n;i++){
   fin>>v;
   p=new Nod;
   p->inf=v;
   if(pr==NULL) pr=ul=p;
   else{ul->urm=p;
	ul=p;
	}
   }
ul->urm=NULL;
fin.close();
}

int prim(long int x){
for(d=2;d<=x/2;d++) if(x%d==0) return 0;
return 1;
}

void determin(){
Lista p, q;
for(p=pr;p;p=p->urm)
    for(q=p->urm;q;q=q->urm)
       if(p->inf!=q->inf)
	 if(prim(p->inf))
	   if(q->inf>p->inf && q->inf%p->inf!=0) nr++;
	   else if(q->inf<p->inf) nr++;
		else ;
	 else if(prim(q->inf))
		if(p->inf>q->inf && p->inf%q->inf!=0) nr++;
		else if(p->inf<q->inf) nr++;
}

void afisare(){
ofstream fout("pairs.out");
fout<<nr<<'\n';
fout.close();
}

int main(){
citire();
determin();
afisare();
return 0;
}