求一道题目的正解
题目:将一个正整数分解质因数。例如:输入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 ;
}