分解质因数
#include<bits/stdc++.h> using namespace std; int main() { int flag[100]; int prime[100]; memset(flag,true,sizeof(flag)); memset(prime,0,sizeof(prime)); for(int i=2;i<=50;i++) { if(flag[i]) { for(int j=i<<1;j<=100;j+=i) { flag[j]=0; } } }//cout<<'e'<<endl; for(int i=2;i<100;i++) if(flag[i]) // cout<<i<<endl; prime[i]=1; int n; cin>>n; int num[105]; memset(num,0,sizeof(num)); for(int i=2;i<=n;i++) { int t=i; while(t>1) { for(int j=2;j<=t;j++) if(prime[j]) { if(t%j==0) { t/=j; num[j]++; } } } } for(int i=2;i<=n;i++) { if(prime[i]) cout<<num[i]<<endl; } return 0; }