Cod sursa(job #1157339)

Utilizator raddudjPogonariu Radu raddudj Data 28 martie 2014 13:51:30
Problema Cifra Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<cstdio>
#include<cmath>
using namespace std;
bool c[60005];
int p[7000];
int u=1;
void ciur(int n)
{
    int i,j,lim;
    c[0]=c[1]=1;
    for(i=4;i<=n;i=i+2)
        c[i]=1;
    lim=(int)sqrt((double)n);
    for(i=3;i<=lim;i=i+2)
        if(c[i]==0)
            for(j=i*i;j<=n;j=j+2*i)
                c[j]=1;
    p[1]=2;
    for(i=3;i<=n;i+=2)
        if(c[i]==0)
            p[++u]=i;
}
int find(int k,int n)
{
   long long numitor;
   int pr=0;
   numitor=k;
    while(numitor<=n)
    {
        pr=pr+n/numitor;
        numitor=numitor*k;
    }
    return pr;
}
int main()
{
    freopen("factori.in","r",stdin);
    freopen("factori.out","w",stdout);
    int n=1,i,nr;
    int aux=60000;
    ciur(aux);
    while(n!=0)
    {
        scanf("%d",&n);
        if(n!=0)
        {
        for(i=1;i<=u && p[i]<=n;i++)
        {
            nr=find(p[i],n);
            printf("%d ",nr);
        }
        printf("\n");
        }

    }
    return 0;
}