Pagini recente » Cod sursa (job #2547049) | Cod sursa (job #2822879) | Cod sursa (job #3140897) | Cod sursa (job #511724) | Cod sursa (job #1168202)
/*
* Programul citeste doua numere din fisierul
* de intrare("adunare.in"), face suma lor si
* scrie rezultatul in fisierul de iesire
* ("adunare.out").
*/
#include<fstream>
#include <stdio.h>
using namespace std;
/*
* Calculeaza cel mai mic divizor comun
* a doua numere.
*/
int cmmdc (int a, int b) {
int r = a % b;
while (r != 0) {
a = b;
b = r;
r = a % b;
}
return b;
}
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) {printf("%d,%d\n",p,q); continue;}
nr += 2;
}
for (int p = 3; p <= n; p += 2)
for (int q = 3; q <= n; q += 2) {
if (cmmdc(p,q) != 1) continue;
nr++;
}
g<<nr;
return 0;
}