A1059 Prime Factors (25分)

1059 Prime Factors (25 points)

Here Insert Picture Description

analysis

Title effect:
the input digital decomposition, find the factor, according to its format output.
Solution:
apparent prime factor must (can no longer be in addition to), we can first determine the common factor list, and constantly ascending n is even the consumer;

Code

#include <stdio.h>
const int maxn = 100010;
bool pr[maxn] = {false}; 
int pr_a[maxn]={0};
int num=0;
int count=0;
struct Factor{
	int x;
	int count;
}fac[10];
//开到10
void prime(){
	//printf("调用"); 
	for (int i=2;i<maxn;i++){
		if(!pr[i]){
		for(int j=i+i;j<maxn;j+=i){
			pr[j]=true;
		}
		pr_a[num++]=i;
		}
	}
} 
int main(){
	int n,m; 
	scanf("%d",&n);
	m=n;
	if(n==1){
		printf("1=1");
	}else {
	
	prime();	
	for(int i=0;i<num;i++){
		if(n%pr_a[i]==0){
			fac[count].x=pr_a[i];
			while(n%pr_a[i]==0){
				fac[count].count++;
				n/=pr_a[i];
			}
			count++;
		}
		if(n==1){
			break;
		}
	}
	printf("%d=",m);
	for (int i=0;i<count;i++){
		printf("%d",fac[i].x);
		if(fac[i].count!=1){
			printf("^%d",fac[i].count);
		}
		if(i!=count-1){
			printf("*");
		}
	} }
	return 0;
} 
Published 91 original articles · won praise 9 · views 10000 +

Guess you like

Origin blog.csdn.net/WeDon_t/article/details/104123406