Cod sursa(job #2657981)

Utilizator DordeDorde Matei Dorde Data 12 octombrie 2020 20:14:35
Problema Fractii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;
ifstream f ("fractii.in");
ofstream g ("fractii.out");
int n;
struct ura {
    int primes , fr;
} ciur [(int)1e6 + 1];
int main()
{
    f >> n;
    for(int i = 1 ; i <= n ; ++ i)
        ciur [i] . fr = n;
    for(int i = 2 ; i <= n ; ++ i){
        if (ciur [i] . primes == 0){
            for (int j = i ; j <= n ; j += i){
                ciur [j] . fr -= n / i , ++ ciur [j] . primes;
                if (j % (i * i) == 0)
                    ciur [j] . primes += 2;
            }
        }
        if (ciur [i] . primes == 2){
            for(int j = i ; j <= n ; j += i)
                ciur [j] . fr += n / i;
        }
    }
    long long ans = 0;
    for(int i = 1 ; i <= n ; ++ i)
        ans = ans + 1LL * ciur [i] . fr;
    g << ans;
    return 0;
}