Cod sursa(job #119440)

Utilizator alexeiIacob Radu alexei Data 31 decembrie 2007 14:53:07
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<fstream>
using namespace std;

ifstream f("fractii.in");                         
ofstream g("fractii.out");
char numere[1000001];
int p;
double tot[1000001];
void ciur(int n)
{
   int i,j;
   
   if(n>1)
   {++p;
      for(j=4; j<=n; j+=2)      { 
                     if(numere[j]!='0'){
                          
                           numere[j]='0';
                           tot[j]=j*0.5; 
                                            
                           }
         }
   }   
   for(i=3; i<=n; i+=2)
   {
       if(numere[i]!='0')
     {++p; 
     
      for(j=i*2; j<=n; j+=i)      {
        if(numere[j]!='0'){
      
        numere[j]='0';}
        if(tot[j]==0)         
        tot[j]=j;         
      
        tot[j]/=i;  
        tot[j]*=i-1;                        }
      }
     
    }
}
int main()
{
long n;
    f>>n; 
   long long s=n; 
    ciur(n); 
   s+=(long long)p*(n-1);
   
   for(int j=3; j<=n; j++)
{ 
   if(tot[j]!=0)
    s+=(long long)(n-(j+j-tot[j]-tot[j]-1));
 
}
  g<<s; 
    return 0;
}