51nod 2122 分解质因数
Posted elisa02
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51nod 2122 分解质因数相关的知识,希望对你有一定的参考价值。
题目链接:http://class.51nod.com/Challenge/Problem.html#problemId=2122
一、题目描述
请你帮小瓜将正整数n分解质因数,并从小到大输出所有的质因数(如果一个质因数出现多次,则输出多次)。
输入
一行一个正整数n,保证1<=n<=10^8。
输出
若干行,每行表示n的一个质因数。按从小到大的顺序输出质因数。
输入样例
12
输出样例
2 2 3
二、代码
#include<cstdio> #include<iostream> using namespace std; int main(){ int n; cin >> n; for(int i = 2;i*i <= n;i++){//i*i <= n是因为数学的一些定理 //进while循环有2种可能: //第1种可能是到目前为止没有输出过i这个数 //第2种可能是已经输出过i这个数了,这个数可以再次被i整除 while(n % i == 0){ n = n / i;//n除以这个数 cout << i << endl;//输出这个数 } } if(n != 1){ cout << n << endl; } return 0; }
以上是关于51nod 2122 分解质因数的主要内容,如果未能解决你的问题,请参考以下文章
51nod 1024 矩阵中不重复的元素(质因数分解+map判重)