#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define number 1000000
int main(){
int i,j;
int x,y,d;
int input;
scanf("%d",&input);
long prime_num[2][100000]={0};
// int prime_fac[2][number]={0};
//建質數表
for(i=2;i<=input;++i){
x=0;
for(j=2;j<=sqrt(input)+1;++j){//條件式多加一次(一個數)判斷
if (i%j==0&&i!=j) {
++x;
break;
}
}
if (!x) {
prime_num[0][d]=i;
++d;
}
}
//建質數表完畢
while(input>1){
for(i=3;i<d;++i){
if(input%prime_num[0][i]==0){
++prime_num[1][i];
input/=prime_num[0][i];
}
}
}
for(i=3;i<d;++i){
if(prime_num[1][i]>1){
printf("%ld^%ld*",prime_num[0][i],prime_num[0][i]);
}else if(prime_num[1][i]==1){
printf("%ld*",prime_num[0][i]);
}
}
printf("\b \n");
system("pause");
return 0;
}
建議你貼上 RE 的完整錯誤訊息,我猜是用了 system("pause");