[C]質因數分解(12/2)

呢……感覺很差呢……去睡覺zzz……

12/2 改良……

33.
#include <stdio.h>
#include <conio.h>
#include <math.h>

int main(){
int input,eax=0,ebx=0; /*嘛……很囧的input,因數,指數*/
printf("這是一個做質因數分解的程式!\n請輸入一個數!\n");
scanf("%d",&input);
printf("\n");
for(;!(input%2);eax++) /*若input/2整除,指數+1*/
input=input/2; /*將input除以2*/
if(eax){ /*若指數大於0*/
printf("2^%d * ",eax); /*印出*/
eax=0; /*指數歸0*/
}
for(eax=3;eax<=input;eax=eax+2) /*從5開始試,試到input本身*/
if(!(input%eax)) /*若eax是input的因數*/
if(checkPrime(eax)){ /*若eax是質數*/
for(ebx=0;!(input%eax);ebx++) /*以下兩行與10,11行一樣*/
input=input/eax;
printf("%d^%d * ",eax,ebx); /*印出*/
}
printf("\b\b \n完成!"); /*把最後多出來的"*"消掉後印出*/
getch(); /*暫停*/
}

int checkPrime(int input){ /*用來檢測質數的函數*/
int i;
for(i=2;i*i<=input;i++) /*從2開始試,試到input的開根號*/
if(!(input%i)) /*若i是input的因數*/
return 0; /*傳回0(合數)*/
return 1; /*試完傳回1(質數)*/
}
已編譯的exe檔下載︰
http://www.multiupload.com/DZGBTUE551

沒有留言:

張貼留言