Cod sursa(job #2060483)

Utilizator aturcsaTurcsa Alexandru aturcsa Data 8 noiembrie 2017 12:11:23
Problema Numerele lui Stirling Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <bitset>
#include <stack>
#include <fstream>
using namespace std;
ifstream fin("perechi.in");
ofstream fout("perechi.out");
bitset <20000000>a;
int n,pr[100000],x,st[1000000],j,lastx,s=1,l;
int main()
{
    cout<<sizeof(st)/1000;
    fin>>n;
    for(long long i=2;i*i<=n;i++)
    {
        if(!a[i])
            {for(long long j=2*i;j<=n;j+=i)
                a[j]=1;
                l++;}
    }
    a[1]=1;
    for(int i=1;i<=n;i++)
    {
        if(!a[i])
            {x++;pr[x]=i;}
    }
    x=1;
    j=0;
    while(n>1)
    {
        while(n%pr[x]==0)
        {
            if(x!=lastx)
                j++;
            n/=pr[x];
            st[j]++;
            lastx=x;
        }
        x++;
    }
    for(int i=1;i<=j;i++)
    {
        s*=2*st[i]+1;
    }
    fout<<(s+1)/2;
    return 0;
}