Cod sursa(job #2921652)

Utilizator anaducaDuca Ana anaduca Data 1 septembrie 2022 12:01:14
Problema Fractii Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
int n,a,b,r;
int divid (int a,int b){
  while (a%b==0) a/=b;
  return a;
}
int phi (int x){
  int nr=x;
  if (x%2==0) {
    nr/=2;
    x=divid (x,2);
  }
  int d;
  for (d=3; d*d<=x;d+=2){
    if(x%d==0) {
      nr=nr*(d-1)/d;
      x=divid(x,d);
    }
  }
  if(x>1&&d*d>x) nr=nr*(x-1)/x;
  return nr;
}
int main()
{
  f>>n;
  for(int i=2;i<=n;i++) {
    b+=phi(i);
  }
  g<<2*b+1;
  return 0;
}