欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

质因数分解模板

程序员文章站 2024-01-14 20:50:34
...

质因数分解

模板

#include<cstdio>
#include<cmath>
#include<iostream> 
using namespace std;


int p[1000];
int num[1000];


bool isPrim(int n){
	
	int N = sqrt(n)+1;
	
	for(int i=2;i<=N;i++ ){
		if(n%i==0) return false;
		
	}
	return true;
}


int divide(int n){
	
	int m = 0;
	
	int N = sqrt(n)+1;
	for(int i=2;i<=N;i++){
		
		if(n%i ==0){
			p[m] = i;
			num[m] = 0;
			while(n%i ==0){
				num[m] ++;
				n/=i;
			}
			m++;
		}
		
		if(n == 1)
			break;
	}
	if(n > 1){
		p[m] = n;
		num[m] = 1;
		m++;
	}
	return m;
}


int main(){
	
	int a;
	scanf("%d",&a);
	int m = divide(a);
	
	for(int i=0;i<m;i++){
		
		printf("%d %d\n",p[i],num[i]);
	}
	
	
	
	
	return 0;
}