以20來舉例
會跑出以下
20=2^2*5^1
我覺得
跑出這樣就可以了
20=2^2*5
複製程式
#include<stdio.h>
#include<stdlib.h>
int main(){
int a,i,t,b[1000]={0},c;
while(scanf("%d",&a)!=EOF){
c=0;
if(a%2==0){
b[c]=2;
for(t=0;a%2==0;t++){
a/=2;
}
if(t>1) b[c+1]=t;
c=c+2;
}
for(i=3;i<=a;i+=2){
if(a%i==0){
b[c]=i;
for(t=0;a%i==0;t++){
a/=i;
}
b[c+1]=t;
c=c+2;
}
}
for(i=0;i<=c-2;i=i+2){
if(b[i+1]>1) printf("%d^%d",b[i],b[i+1]);
else printf("%d",b[i]);
if(i<=c-4)printf(" * ");
}
printf("\n");
}
return 0;
}