从键盘输入一个正整数(>1),然后将该整数分解为1和各个质因子的相乘,如果输入的整数本身就是质数,则应分解为1和该数本身相乘。
如:
18
1233
为什么这段代码输入18后输出129而不是1233,如何解决
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
int a;
scanf("%d", &a);
printf("1*");
if (a % 2 == 0)
{
printf("2");
for (a; a%2==0; a=a / 2)
printf("*");
}
for (int i = 3; i * i < a; i += 2)
{
while (a % i == 0)
{
printf(" % d", i);
a = a / i;
if (a > 1)
printf("*");
}
}
if (a > 1)
printf("%d", a);
return 0;
}