质因数分解
Posted zhangqiling
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了质因数分解相关的知识,希望对你有一定的参考价值。
1 /* 2 一、分解只因数的原理 3 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: 4 (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 5 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 6 重复执行第一步。 7 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 8 ps : 1的质因数为0个(某些题目中) 9 */ 10 11 #include<bits/stdc++.h> 12 13 using namespace std; 14 15 map<int,int> mp; 16 17 int main(){ 18 int n; 19 cin >> n; 20 cout << n << "="; 21 for(int i=2; i<=n; i++){ 22 if(n == i) mp[i]++; 23 while(n != i){ 24 if(n % i == 0){ 25 mp[i]++; 26 cout << i << "*"; 27 n /= i; 28 }else break; 29 } 30 } 31 cout << n << endl; 32 mp[n]++; 33 cout << "该数字中不同质因子个数为:" << " " << mp.size() << endl; 34 if(n != 1){ 35 cout << "分别为:" << endl; 36 for(map<int,int>::iterator it = mp.begin(); it != mp.end(); it++){ 37 cout << "质因子为: " << it->first << " " << "质因子个数为: " << it->second << endl; 38 } 39 } 40 return 0; 41 }
以上是关于质因数分解的主要内容,如果未能解决你的问题,请参考以下文章