Cod sursa(job #3249960)

Utilizator ArklahhisCraciun Mihai Arklahhis Data 18 octombrie 2024 20:34:29
Problema Fractii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int n,nr;
int indmob(int x)
{
    int d=2;
    int exp=0;
    int divprim=0;
    while (x%d==0)
    {
        x/=d;
        exp++;
    }
    if (exp>1)
        return 0;
    if (exp>0)
        divprim++;
    d=3;
    while (x>0)
    {
        exp=0;
        while (x%d==0)
        {
            x/=d;
            exp++;
        }
        if (exp>1)
            return 0;
        if (exp>0)
            divprim++;
        if (d*d<=x)
            d+=2;
        else
            d=x;
    }
    if (divprim%2==0)
        return 1;
    return -1;
}
int main()
{
    fin >> n;
    for (int i=2; i*i<=n; i++)
    {
        if (n%i==0)
            nr+=(n/i+indmob(i));
    }
    fout << nr;
    return 0;
}