为什么被扣了两分,有哪里出错吗?

img


#include <stdio.h>
int main(){
int a,i;
scanf("%d",&a);
if(a<0)printf("%d=-1",a),a=-a;
else printf("%d=1",a);
for(i=2;;){
if(a%i==0){
a/=i;
if(a==1){
printf("%d",i);
break;
}else printf("
%d",i);
}else i++;
}
return 0;
}

减少时间复杂度的话,直接判断输入数里面的质数,比如,输入20,里面的质数有2,3,5,7,11,13,17,19,再加上一个1,因子只可能在这些质数里面