标签:lse color ace break 整数 质因数 因子 begin 程序
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 }
标签:lse color ace break 整数 质因数 因子 begin 程序
原文地址:https://www.cnblogs.com/zhangqiling/p/12494276.html