Cod sursa(job #2322642)

Utilizator claudiu.gatinaFMI Claudiu Gatina claudiu.gatina Data 18 ianuarie 2019 00:57:04
Problema Fractii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 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;
    for(int i = 1; i <= n; ++i)
        nums[i] = i;
    int sum = n * n;
    int sqn = sqrt(n) + 1;
    for(int i = 2; i <= n; ++i)
    {
        if(v[i] == 0)
        {
            int c = 0;
            int d = 0;
            for(int j = i; j <= n; j += i)
            {
                if(v[j])
                    ++d;
                else
                    v[j] = 1;
                if(nums[j] % i == 0)
                {
                    nums[j] /= i;
                    ++c;
                }
            }
            sum -= c * c;
            sum += d;
        }
    }
    cout << sum;
    return 0;
}