Pagini recente » Cod sursa (job #249822) | Cod sursa (job #1143597) | Cod sursa (job #2311398) | Cod sursa (job #2635661) | Cod sursa (job #2460663)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("pairs.in");
ofstream g("pairs.out");
int n, i, j, k = 0, aux, cate = 0, aux1, aux2;
bool x[1000001];
int main()
{
f >> n;
int v[n+1];
/// Eratostene pana la 1.000.000
for(i = 2; i*i <= 1000000; i++)
if(x[i] == 0)
for(j = 2; i*j <= 1000000; j++)
x[i*j] = 1;
for(i = 1; i <= n; i++) {
f >> v[i];
}
/// Sortarea vectorului
for(i = 1; i < n; i++)
for(j = i+1; j <= n; j++)
if(v[i] > v[j]){
aux = v[i];
v[i] = v[j];
v[j] = aux;
}
for(i = 1; i <= n; i++) {
cout << v[i] << ' ' ;
}
cout << endl;
/// Gasirea perechilor
for(i = 1; i < n; i++) {
if(x[v[i]] == 0) {
for(j = i+1; j <= n; j++) {
if(v[i] < v[j]) {
if(v[j]%v[i] != 0)
k++;
} else k++;
}
} else {
for(j = i+1; j <= n; j++) {
if(x[v[j]] == 0)
k++;
else if(!(v[i]%2 ==0 && v[j]%2==0) && !(v[i]%3 ==0 && v[j]%3==0) && !(v[i]%5 ==0 && v[j]%5==0) && !(v[i]%7 ==0 && v[j]%7==0)){
aux1 = v[i];
aux2 = v[j];
while(aux1 != aux2) {
if(aux1 > aux2)
aux1 -= aux2;
else aux2 -= aux1;
}
if(aux1 == 1)
k++;
}
}
}
}
g << k;
return 0;
}