Problem D: 分解质因数

Problem D: 分解质因数

分析

主要分成两部分来看质数和普通数,巧妙利用判断质数的函数简化运算,对于格式一部分一部分地输出和判断。

Description

输入一个正整数,分解质因数。例如,输入90,输出90=233*5。

Input

输入一个正整数n

Output

输出该数的质因数

Sample Input

90
12

Sample Output

90=2335
12=2
2*3

#include 

int test(int num){
	int i;
	for(i=2; i*i<=num;i++){
		if(num%i==0){
			break;
		}
	}
	if(i*i>num){
		return 1;
	}else{
		return 0;
	}
}

int main(){
	int num,i;

	scanf("%d",&num);

	if(test(num)){
		printf("%d=%d",num,num);
	}else{
		printf("%d=",num);
		for(i=2;i<=num;i++){
			if(num%i==0){
				if(test(num)){
					printf("%d",num);
					break;
				}
				printf("%d",i);
				num/=i;
				i--;
				if(num!= 1){
					printf("*");
				}
			}
		}
	}
	return 0;
}


总结

1、善于利用好已编写的函数。
2、对于复杂的格式输出,可以利用循环或者判断分步骤输出。

你可能感兴趣的:(C语言基础学习)