Cod sursa(job #992331)

Utilizator sebinechitasebi nechita sebinechita Data 1 septembrie 2013 17:40:07
Problema Zero 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.37 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
#include <climits>
#include <algorithm>
#include <cmath>
using namespace std;

ifstream fin("zero2.in");
ofstream fout("zero2.out");
#define baza 10
#define MAX 1000000

long long int  n,b,nr;

long long int x,y , i, j;



int main()
{

    for(int kj=1;kj<=10;kj++)
    {
        fin>>n>>b;

        int maxx=0, maxy=0;
        int l=sqrt(b);

        for(i=2;i<=l;i++)
        {
            if(b%i==0)
            {

                x=i;
                y=0;
                while(b%i==0)
                {
                    y++;
                    b/=i;
                }
                l=sqrt(b);
                if(x>maxx)
                {
                    maxx=x;
                    maxy=y;
                }

            }

        }
        if(b>1)
        {
            maxx=b;
            maxy=1;
        }

        for(i=maxx;i<=n;i+=maxx)
        {
            if(i%maxx==0)
            {
                long long int kh=0;
                long long ci=i;
                while(ci%maxx==0)
                {
                    kh++;
                    ci/=maxx;
                }
                nr+=(kh*(n+1-i));

            }
        }

    nr/=maxy;


        fout<<nr<<"\n";
        nr=0;

    }
    return 0;
}