Cod sursa(job #3309005)

Utilizator _.diannaq._Bengescu Diana _.diannaq._ Data 30 august 2025 19:23:54
Problema Fractii Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <bits/stdc++.h>

using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");

int const NMAX=1000000;
bitset<NMAX+5>is_prime;
void ciur(){
  is_prime.set();
  is_prime[0]=is_prime[1]=0;
  for(int i=4;i<=NMAX;i=i+2){
   is_prime[i]=0;
    
  }
  for(int i=3;i*i<=NMAX;i=i+2){
    for(int j=i*i;j<=NMAX;j=j+i){
      is_prime[j]=0;
    }
  }
}

int euler(int n){
  int ans=n;
 for(int i=2;i*i<=n;i++){
  if(is_prime[i]==1 && n%i==0){
    while(n%i==0){
      n=n/i;
    }
    ans-=ans/i; 
}
   
 }
  if(n>1){
    ans-=ans/n;
  }
return ans;

  
}


int main(){
  ciur();
  int n;
  fin>>n;
  int s=1;
  for(int i=2;i<=n;i++){
    s=s+2*euler(i);
  }
fout<<s;



}