质因数分解程序
一、問題描述
質因數分解,給定一個數,求出該數的所有質因數,由大到小輸出
二、程序
/** 質因數分解,求一個數的質因數,例如90 = 2*3*3*5 */#include "stdio.h" #include "stdlib.h" #include "math.h" bool isPrime(int number) {double dnum = (double)number;int stopNum = sqrt(dnum);for(int i = 2; i <= stopNum; i++){ if(0 == number % i)return false;}return true; }void PrimeFactor(int number) {int factor = 2;if(number == factor && isPrime(factor)){printf("%d\n", factor);return;}while(number != factor){while(number % factor == 0 && isPrime(factor)){printf("%d ", factor);number /= factor;} factor ++;if(number == factor && isPrime(factor))printf("%d\n", factor); } //while }int main() {printf("input a number:\n");int number;scanf("%d", &number); //例如:90printf("factor(s) of %d is(are) : ", number);PrimeFactor(number); //例如:90 = 2*3*3*5system("pause");return 0; }三、運行結果
總結
- 上一篇: 二叉树的先序/中序/后序/层次遍历
- 下一篇: 自增符号++(自减符号--)带来的部分影