virtual hust 2013.6.21 数论基础题目 H - Factoring Large Numbers
思路:开始一看,感觉暴不了,然后题目中有说大于100w的素因子只有一个,所以那就暴100w以内的质因子就行,最后剩下的不等于1的话,就是一个大于100w的素因子直接输出

#include <cstdio> #include <iostream> #include <cmath> #include <algorithm> #include <cstring> using namespace std; #define maxn 1000001 bool vis[maxn]; int prime[maxn]; int n_prime=0; void Prime() { memset(vis,true,sizeof(vis)); vis[1]=vis[0]=false; for(int i=2;i<maxn;i++) { if(vis[i]) { prime[++n_prime]=i; for(int j=2*i;j<maxn;j+=i) vis[j]=false; } } //cout<<n_prime<<" "<<prime[n_prime]<<endl; } int main() { Prime(); long long n; while(scanf("%lld",&n)!=EOF) { if(n<=0) break; for(int i=1;i<=n_prime;i++) { if(n%prime[i]==0) { while(n%prime[i]==0) { printf(" "); printf("%d\n",prime[i]); n/=prime[i]; } } } if(n!=1) printf(" %lld\n",n); printf("\n"); } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】博客园2025新款「AI繁忙」系列T恤上架,前往周边小店选购
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步