前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >素数筛 + 合数分解

素数筛 + 合数分解

作者头像
用户2965768
发布2018-10-18 11:37:27
3360
发布2018-10-18 11:37:27
举报
文章被收录于专栏:wymwym
//素数筛 + 合数分解
// O(n) 
#include <bits/stdc++.h>
using namespace std;
 
const int MAXN=10000;
 int prime[MAXN+1];
 void getPrime() {
	 memset(prime,0,sizeof(prime));
	 for(int i=2; i<=MAXN; i++) {
		 if(!prime[i])prime[++prime[0]]=i;
		 for(int j=1; j<=prime[0]&&prime[j]<=MAXN/i; j++) {
			 prime[prime[j]*i]=1;
			 if(i%prime[j]==0) break;
			
		}
		
	}
	
}

 long long factor[100][2];
 int fatCnt;
 int getFactors(long long x) {
	 fatCnt=0;
	 long long tmp=x;
	 for(int i=1; prime[i]<=tmp/prime[i]; i++) {
		 factor[fatCnt][1]=0;
		 if(tmp%prime[i]==0) {
			 factor[fatCnt][0]=prime[i];
			 while(tmp%prime[i]==0) {
				 factor[fatCnt][1]++;
				 tmp/=prime[i];				
			}
			 fatCnt++;	
		}	
	}
	 if(tmp!=1) {
		 factor[fatCnt][0]=tmp;
		 factor[fatCnt++][1]=1;	
	}
	
	 return fatCnt;
	
}
int main()
{
	getPrime();
	cout<<getFactors(1000);
	
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年10月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档