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

进阶实验 2-3.4 素因子分解(20 分)

程序员文章站 2022-03-04 22:43:29
...

给定某个正整数 N,求其素因子分解结果,即给出其因式分解表达式 N=p​1k​1·p​2k​2​​​​⋯p​mk​m​​。

输入格式:

输入 long int 范围内的正整数 N

输出格式:

按给定格式输出 N 的素因式分解表达式,即 N=p​1k​1·p​2k​2​​​​⋯p​mk​m 为素因子并要求由小到大输出,指数 kipi 的个数;当 ki 为 1 即因子 pi 只有一个时不输出 ki

输入样例:

1323

输出样例:

1323=3^3*7^2

代码:

#include<math.h>
#include<stdio.h>
int prime(int number){
	int i,range=sqrt(number);
	for(i=2;i<=range;i++)if(number%i==0)return 0;
	return 1;
}
int main(){
	int factor=1,number,answer[8192]={0},flag=0,i;
	scanf("%d",&number);
	printf("%d=",number);
	if(number<2)printf("%d",number);
	while(number>1)if(prime(++factor))while(number%factor==0){
		number/=factor;
		answer[factor]++;
	}
	for(i=2;i<8192;i++)if(answer[i]){
		if(flag)printf("*");
		flag=1;
		printf("%d",i);
		if(answer[i]>1)printf("^%d",answer[i]);
	}
	return 0;
}

提交结果:

进阶实验 2-3.4 素因子分解(20 分)