Pagini recente » Cod sursa (job #2482030) | Cod sursa (job #1637818) | Cod sursa (job #2093906) | Cod sursa (job #3178588) | Cod sursa (job #1168197)
/*
* Programul citeste doua numere din fisierul
* de intrare("adunare.in"), face suma lor si
* scrie rezultatul in fisierul de iesire
* ("adunare.out").
*/
#include<fstream>
using namespace std;
/*
* Calculeaza cel mai mic divizor comun
* a doua numere.
*/
int cmmdc (int a, int b) {
while (a != b) {
if (a > b) a -= b;
else b -= a;
}
return a;
}
int main(){
ifstream f("fractii.in");
ofstream g("fractii.out");
int n, nr = 0;
f>>n;
// Vor fi n fractii cu numaratorul 1
nr += n;
// si inca (n-1) fractii cu numitorul 1
nr += (n-1);
// Orice doua numere pare il vor avea ca
// cmmdc pe 2. Deci le putem exclude.
for (int p = 2; p <= n; p += 2)
for (int q = 3; q <= n; q += 2) {
if (cmmdc(p,q) != 1) continue;
nr++;
}
for (int p = 3; p <= n; p += 2)
for (int q = 2; q <= n; q++) {
if (cmmdc(p,q) != 1) continue;
nr++;
}
g<<nr;
return 0;
}