求合数并作分解因式,帮忙看看有没有逻辑错误!!
/***求解一个数是不是素数,如果不是,求解其分因式***/#include "stdio.h"
main() {
int num,i,in;
for(;;){
printf("Please enter one number:\n");
scanf("%d",&num);
if(num<=1||num>32767);
else break;
} /* 如果输入的数太多或小于零则重新输入到符合为止 */
for(i=2;i<=(int)(num/2);i++)
{
if(num%i==0) /*****能整除则为非质数*****/
{
printf("The number is NO a prime \n");
printf("num="); /*****显示其质因数******/
for(in=2;in<=(int)(num/2);in++)
{
if(num%in==0)
{
printf("%d*",in);
num=num/in;
in=1; /*******这个很重要,我找了N久*******/
}
}
printf("%d\n\n",num); /*****这个是最后的质因子**********/
break;
}
else if(i==(int)(num/2)) /* 用这一句来判断其为质数 */
{printf("The number is a prime \n\n");break;}
}
system("pause");
}
有没有其它可以改良的地方??谢谢!!
.