zoukankan      html  css  js  c++  java
  • OpenJudge 2749 分解因数

    1.链接地址:

    http://bailian.openjudge.cn/practice/2749/

    2.题目:

    总时间限制:
    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
    

    3.思路:

    递归,注意分解的结果要是递增排列的才行

    4.代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 
     4 using namespace std;
     5 
     6 int f(int s,int a)
     7 {
     8     int i;
     9     int res = 1;
    10     for(i = s; i * i <= a; ++i)
    11     {
    12         if(a % i == 0) res += f(i,a / i);
    13     }
    14     return res;
    15 }
    16 
    17 int main()
    18 {
    19     //freopen("C://input.txt","r",stdin);
    20 
    21     int n;
    22     cin >> n;
    23 
    24     int a;
    25     while(n--)
    26     {
    27         cin >> a;
    28         cout << f(2,a) << endl;
    29     }
    30 
    31     return 0;
    32 }
  • 相关阅读:
    获取微信接口各种信息
    servlet
    springmvc上传图片,发送邮件
    linuxmint卸载软件
    linuxmint更改权限
    screen 链接远程桌面
    eclipse添加桌面快捷方式
    window精选软件
    windows Server2012 IIS8.0配置安装完整教程
    SQL Server 2012 sa 用户登录 18456 错误
  • 原文地址:https://www.cnblogs.com/mobileliker/p/3558461.html
Copyright © 2011-2022 走看看