Cod sursa(job #2324856)

Utilizator claudiu.gatinaFMI Claudiu Gatina claudiu.gatina Data 21 ianuarie 2019 17:02:20
Problema Fractii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <cstdio>
#include <cmath>

using namespace std;

int v[1000002];
int nums[1000002];

int main()
{
  freopen("fractii.in", "r", stdin);
  freopen("fractii.out", "w", stdout);
  int n;
  cin >> n;
  int sum = n * n;
  for(int i = 2; i <= n; ++i)
  {
    if(v[i] == 0)
    {
      for(int j = i; j <= n; j += i)
      {
        ++nums[j];
        v[j] = 1;
      }
      v[i] = 0;
    }
  }
  for(int i = 2; i <= n; ++i)
  {
    if(v[i] == 1 && nums[i] == 1)
      continue;
    if(nums[i] % 2)
    {
      sum -= ((n / i) * (n / i));
    }
    else
    {
      sum += ((n / i) * (n / i));
    }
  }
  cout << sum;
  return 0;
}