求一道题目的正解
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。要求:
请写清楚 程序分析 和 源代码。 谢谢`~~~
#include <stdio.h> void solve( int n , int cur ) { if( n % cur == 0 ) //如果能整除 { n /= cur ; printf("%d", cur ) ; if( n == 1 ) { printf("\n") ; // n为1时候退出 return ; } else printf("*") ; // n不为1时候输出乘号 solve( n , cur ) ; // 整除时候用当前因子继续试 } else solve( n , ++cur ) ; // 因子加1继续试 } int main() { int n ; scanf("%d", &n ) ; printf("%d=", n ) ; solve( n , 2 ) ; // 因子从2开始 return 0 ; }
#include <stdio.h> void fun(int n) { while(1) { for(int j=2; j <= n; j++) { if(n%j == 0) { n /= j; printf("%d", j); break; } } if(n == 1) { printf("\n"); return; } else printf("*"); } } int main(void) { int n ; printf("请输入数字:"); scanf("%d", &n ) ; printf("%d=", n ) ; fun(n) ; return 0 ; }