Pagini recente » Cod sursa (job #1713492) | Cod sursa (job #507807) | Cod sursa (job #877324) | Cod sursa (job #2749620) | Cod sursa (job #1157339)
#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;
}