Pagini recente » Cod sursa (job #1031782) | Cod sursa (job #407686) | Cod sursa (job #1610458) | Cod sursa (job #2736332) | Cod sursa (job #2460656)
#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];
}
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++) {
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 {
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;
}