算术基本定理(将一个正整数分解质因数),又称为正整数的唯一分解定理,即:每个大于1的自然数(且不是质数)均可分解为质数的积,而且这些质因数按小大排列之后,写法仅有一种方式(唯一的)。请编写程序对输入的正整数进行质因数分解。
#include<iostream> #include<math.h> using namespace std; int main() { ? ? int num; ? ? int sum = 1; ? ? bool flag; ? ? cin >> num;
? ? int t = num; ? ? for (int i = 2; i < num; i++) ? ? { ? ? ? ? flag = true;
? ? ? ? for (int m = 2; m < sqrtf(i); m++) ? ? ? ? { ? ? ? ? ? ? if (i%m == 0) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? flag = false; ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? if (flag) ? ? ? ? { ? ? ? ? ? ? while(t%i == 0) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? sum = sum*i; ? ? ? ? ? ? ? ? if (sum < num) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? cout << i << "*"; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? else if (sum == num) ? ? ? ? ? ? ? ? ? ? cout << i << endl; ? ? ? ? ? ? ? ? t = t / i; ? ? ? ? ? ? } ? ? ? ? } ? ? }
? ? return 0; }
|