Pagini recente » Cod sursa (job #3142736) | Cod sursa (job #2714917) | Cod sursa (job #240649) | Cod sursa (job #1766681) | Cod sursa (job #78657)
Cod sursa(job #78657)
/*******************************************************************************
Problema : Fractii
Website : InfoArena
Rezolvitor : Dr.Optix
Enunt:
Gigel, intr-o zi cand isi facea temele la matematica, s-a apucat sa scrie pe o
foaie de hartie, un sir de fractii ireductibile de forma P/Q cu 1 <= P,Q <= N,
unde N este un numar natural ales de el. De exemplu, pentru N = 4 el a obtinut
urmatorul sir:
1/1 1/2 1/3 1/4 2/1 2/3 3/1 3/2 3/4 4/1 4/3
Gigel s-a apucat apoi sa numere cate fractii a obtinut pentru N = 4 si a vazut
ca sunt 11.
Cerinta
Fiind dat un numar natural N, sa se determine cate fractii sunt in sirul de
fractii construit dupa regulile de mai sus.
Date de intrare
Fisierul de intrare fractii.in contine pe prima linie numarul natural N.
Date de iesire
Fisierul de iesire fractii.out trebuie sa contina un numar natural pe prima
linie care reprezinta cate fractii sunt in sir.
Restrictii si precizari
* 1 <= N <= 1.000.000
*******************************************************************************/
//includ fisierele necesare
#include <iostream>
#include <fstream.h>
//main() -- functia principala
int main()
{
//deschid fisierele
ifstream fin("fractii.in");
ofstream fout("fractii.out");
//declar variabilele necesare
long n,i,j,s,a,b;
//citesc datele
fin>>n;
//calculez numarul fractiilor
s=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
a=i; b=j;
while(a!=b)
{
if(a>b)
a-=b;
else
b-=a;
}
if(a==1)
s++;
}
//scriu rezultatul
fout<<s;
//inchid fisierele
fin.close();fout.close();
return 0;
}