求一个整数的所有因子
2015-07-29 11:45
323 查看
#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib> using namespace std;typedef long long ll;const int Max_N=100000; int main(){ ll n; int num=0; ll a[Max_N]; scanf("%lld",&n); for(ll i=2;i*i<=n;i++) { while(n%i==0) { a[num++]=i; n/=i; } } if(n>1) a[num++]=n; for(int i=0;i<num;i++) printf("%lld\n",a[i]); return 0;} 1.输入一个整数n,求它的所有因子,则从2开始逐个查找。2.找到一个因子x就将其保存并将n除以x直到新的n'中不包含因子x,然后对n'重复 1 操作。 例:n=2*3*5*7*11*13每次从n中找最小因子,找到2后,n'=3*5*7*11*13,再找n'中最小因子3,依次类推。可知最后n'就等于n的最大因子,直接保存。
相关文章推荐
- [MarsZ]Unity3d游戏开发之Unity3d全策划配置新手指引
- Hibernate学习之概述
- uva--232(字符串模拟)
- 样式表的重置
- serializeArray()与serialize()的区别
- 预编译头文件 StdAfx.h
- 虚拟机IP配置总结
- hdu 5316Magician (线段树)
- 安装GCC-4.6.1详细教程
- hdu1232 畅通工程
- 逆向学习XX客户端如何只运行一个实例
- android 字符串string
- return返回值
- 虚拟内存和虚拟地址空间
- 如何判断接受的信息来源于pc还是移动端,以及代码的的不同处理
- Eclipse常用插件 + Eclipse快捷键
- 小贴士 text-indent
- NSSrting的几种常用的用法
- 项目问题处理反馈0806
- 短网址的原理和实现