Cod sursa(job #1982087)

Utilizator mateibanuBanu Matei Costin mateibanu Data 17 mai 2017 17:51:44
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
#include <math.h>

using namespace std;

FILE*f=fopen("armonica.in","r");
FILE*g=fopen("armonica.out","w");

#define ll long long

ll v[1000001],nr[1000001];

int main()
{
    ll b,n=0,d,p,x,nrd=0,i;
    fscanf(f,"%lld",&b);
    x=b;
    if (b%2==0) x=b/2;
    p=sqrt(x);
    for (i=2;i<=p;i++){
        if (x%i==0){
            nrd++;
            v[nrd]=i;
            while (x%i==0) {
                nr[nrd]++;
                x/=i;
            }
        }
    }
    if (x>1){
        nrd++;
        v[nrd]=x;
        nr[nrd]=1;
    }
    p=1;
    for (i=1;i<=nrd;i++){
        nr[i]=nr[i]*2;
        p=p*(nr[i]+1);
    }
    fprintf(g,"%lld\n",p);
    bck()
    fclose(f);
    fclose(g);
    return 0;
}