问题描述
设计算法,用户输入合数,程序输出若个素数的乘积。例如,输入6,输出2*3。输入20,输出2*2*5。
样例
与上面的样例输入对应的输出。
例:
数据规模和约定
输入数据中每一个数在int表示范围内。
思路:用双层循环就可以很好解决这道题,这道题很简单,就不多说了
#include <stdio.h>
int main( )
{
int num,i;
scanf("%d",&num);
for(i=2;i<=num;i++)// 从2开始循环 ,控制i
{
while(num%i==0)//能整除再处理数据,不断循环,直至不能再整除
{
if(num==i)//结束标志,数字后面不跟乘号
{
printf("%d",i);
}
else printf("%d*",i);//未结束,后面仍然跟乘号
num=num/i;//将num的因子i取走,即变为num/i
}
}
return 0;
}