分解质因子

这个需要素数筛

#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=4e5+100;
int prime[maxn];
int biaoji[maxn];
int cnt;
void getPrime(){
    for(int i=2;i<maxn;i++){
        if(!biaoji[i]){
            prime[++cnt]=i;
        }
        for(int j=1;j<=cnt&&i*prime[j]<maxn;j++){
            biaoji[i*prime[j]]=1;
            if(i%prime[j]==0){
                break;
            }
        }
    }
}
int main(){
	getPrime();
	int n;
	cin>>n;
	for(int i=1;prime[i]*prime[i]<=n;i++){
		int cnt=0;
		while(n%prime[i]==0){
			cnt++;
			n/=prime[i];
		}
		if(cnt)
			cout<<prime[i]<<" "<<cnt<<endl;
	}
	if(n!=1){
		cout<<1<<" "<<n<<endl;
	} 
	cout<<endl;
	return 0;
}
posted @   lipu123  阅读(6)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示