2019-03-10 分解因数

方案一:使用for循环

#include<iostream>
#include<algorithm>
using namespace std;
int res=0;
void ac(int s,int m)
{
    if(s==1)
    {
        res++;
        return;
    }
    else 
    {
        for(int i=m;i<=s;i++)
        {
            if(s%i==0)
            {
                ac(s/i,i);
            }
        }
    }
}
int main(void)
{
    int n,s;
    cin >> n;
    while(n--)
    {
        cin >> s;
        res = 0;
        ac(s,2);
        cout<<res<<endl;
    }
    return 0;
}

方案二:使用递归

#include<iostream>
#include<algorithm>
using namespace std;
int res;
void ac(int m,int div)
{
    if(m==1) res+=1;
    else if(div==1) return;
    else if(m%div==0) 
    {
        ac(m/div,div);
        ac(m,div-1);
    } 
    else 
    {
        ac(m,div-1);    
    } 
}
int main(void)
{
    int n;
    cin >> n;
    while(n--)
    {
        int m;
        cin >> m;
        res=0;
        ac(m,m);
        cout << res <<endl; 
    }
    return 0;   
} 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 7dc40f6e67f1阅读 121评论 0 1
  • 箭头函数: var f = (v) => {return v}; 相当于:var f = function(v) ...
    一川烟草i蓑衣阅读 192评论 0 0
  • 因为一时兴起,建立了北京长师校友微信群,陆陆续续加进来了很多母校的在京校友,校友群体自带的粘度和信任的属性,在群内...
    亮视点阅读 212评论 0 0
  • 育子的无奈与无助都将成为生命中宝贵的财富!当你面对了更多的坎坷,你就给了自己更多挑战与成长的机会!直面曾经的不足才...
    张天艳阅读 448评论 3 7
  • 沉默的夜,清冷的月光,单调的路灯,迷茫的夜路,孤单的人,寂寞的心。昏暗的路灯将孤独的身影长长的拖在地上,思念垒积着...
    李易峰女友阅读 295评论 2 68