#include<iostream>
#include<malloc.h>
#include<string.h>
using namespace std;
#define MAXN 101
int *a,b[MAXN];
int* isprame(int n){
int u[MAXN],su[MAXN];
int i,j,num=1;
memset(u,true,sizeof(u));
u[1]=false;
for(int i=2;i<=n;i++){
if(u[i]) su[num++]=i;
for(int j=1;j<num;j++){
if(i*su[j]>n) break;
u[i*su[j]]=false;
if(i%su[j]==0) break;
}
}
return u;
}
int main(){
int n;
a=(int*)malloc(sizeof(int)*MAXN);
while(cin>>n){
memset(b,0,sizeof(b));
a=isprame(n);
for(int i=2;i<=n;i++){
int m=i;
for(int j=2;j<=m;j++)
{if(a[j]&&m%j==0) {
b[j]++;
m=m/j;
j--;
}
}
}
for(int i=1;i<=n;i++)
if(b[i]) cout<<b[i]<<" ";
cout<<endl;
}
return 0;
}
acm-因子和阶乘
最新推荐文章于 2024-04-08 16:51:10 发布