弱弱的问C程序,整数分解质因数问题
#include "stdio.h"
main()
{
int n,i,m;
scanf("%d",&n);
m=n;
printf("%d=",n);
for(i=2; i<n; i++)
{
while(m%i==0)
{
m=m/i;
printf("%d*",i);
}
}
printf("\b ");/*去掉最后一个*号*/
getch();
}
只能从2以上才行,1不行。:(
为什么这个程序可以实现49=7×7,就是说i的值不变呢?
for循环完成后,i++后就不能再输出相同i了啊
[解决办法]
1、
1不是质因数,所以不能分解
2、
while(m%i==0) /*此循环为当m%i==0成立时执行。m=49执行一次后m=7,此时i=7,m%i==0成立,顾执行了两次printf*/
{
m=m/i;
printf("%d*",i);
}
[解决办法]