Cod sursa(job #1016)

Utilizator huntleyTurdean Mihai huntley Data 12 decembrie 2006 14:03:08
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream.h>

ifstream in("fractii.in");
ofstream out("fractii.out");

int cmmdc(int a,int b);
int nr_el(int n);
int nr_elr(int n,int a);

int main()
 {
  int n,nr,i,rest;
  in>>n;
  nr=n+n/2+n%2;
  for (i=3;i<=n;i++)
   {
    nr+=((n/i)*(i-nr_el(i)));
    rest=n%i;
    if (rest!=1)
     nr=nr+(rest-nr_elr(i,rest));
    else nr++;
   }
  out<<nr;
  in.close();
  out.close();
 }

int cmmdc(int a, int b)
 {
  for (int i=2;i<=b;i++)
   if ((a%i==0)&&(b%i==0))
    return 1;
  return 0;
 }

int nr_el(int n)
 {
  int i,nr=1;
  for (i=2;i<n-1;i++)
   if (cmmdc(n,i))
    nr++;
  return nr;
 }

int nr_elr(int n, int a)
 {
  int nr=0;
  for (int i=2;i<=a;i++)
   if (cmmdc(n,i))
    nr++;
  return nr;
 }