OpenJudge2749:分解因数
2015-10-12 17:49
489 查看
分解因数
总时间限制:
1000ms 内存限制: 65536kB
描述给出一个正整数a,要求分解成若干个正整数的乘积,即a = a1 * a2 * a3 * ... * an,并且1 < a1 <= a2 <= a3 <= ... <= an,问这样的分解的种数有多少。注意到a = a也是一种分解。
输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (1 < a < 32768)
输出n行,每行输出对应一个输入。输出应是一个正整数,指明满足要求的分解的种数
样例输入
样例输出
总时间限制:
1000ms 内存限制: 65536kB
描述给出一个正整数a,要求分解成若干个正整数的乘积,即a = a1 * a2 * a3 * ... * an,并且1 < a1 <= a2 <= a3 <= ... <= an,问这样的分解的种数有多少。注意到a = a也是一种分解。
输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (1 < a < 32768)
输出n行,每行输出对应一个输入。输出应是一个正整数,指明满足要求的分解的种数
样例输入
2 2 20
样例输出
1 4
#include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> #include <cstring> #include <string> #include <queue> #include <algorithm> using namespace std; int sum; void count(int a,int b) { for(int i=a;i<b;i++) { if(b%i==0&&i<=b/i) { sum++; count(i,b/i);//递归计算 } if(i>b/i) break; } } int main() { int n; int a; cin >> n; while(n) { sum = 1; cin >> a; count(2,a); cout<<sum<<endl; n--; } //cout << "Hello world!" << endl; return 0; }
相关文章推荐
- 重新格式化HDFS的方法
- CentOs开启Apache的rewrite_module模块,支持.htaccess
- 【shell】再看一眼find--find使用中遇到的问题分析
- 学习日志---linux打卡7
- Docker run 命令的使用方法
- tomcat的配置文件server.xml不支持中文注释的解决办法
- 零基础学习openstack【初级篇】
- 一个基本的技术网站
- LINUX常用的日志分析命令
- 前端学习/资源/工具网站
- Hadoop学习笔记———《MultipleOutputs———将结果输出到指定的多个文件或文件夹》
- Android mvp 设计模式目录架构设计
- 内存管理器(一)简单分配器
- Linux下SSH免密码登录
- linux shell脚本游戏之推箱子
- xshell联系CentOS6.5 iptables要么ls 乱码输出
- docker registry 搭建步骤
- Nginx配置文件nginx.conf中文详解(总结)
- VS2010-2013 fatal error LNK1117: syntax error in option 'pdbpath:none'
- [国嵌笔记][005][Linux命令详解]