E. 小学生的复仇2

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

小学生ikun最近学了算法,变得嚣张起来。他刚掌握了如何用 的复杂度求出一个数 的所有因子及个数,便到处炫耀(因为还有大部分大学生如cypress都还在用 复杂度从1遍历到 来计算因子)。

//c++代码中的某函数
vector<int>get_factors(int x){
    vector<int>ans;
    for(int i=1;i<=x/i;i++){
        if(x%i==0){
            ans.push_back(i);
            if(i!=x/i)ans.push_back(x/i); 
        }
    }
    sort(ans.begin(),ans.end());
    return ans;
}

为了给他点颜色看看,cypress的朋友取舍决定给他一个更具挑战性的任务,计算一个大数中所有因子的数量。

但小学生ikun不甘示弱,决定复仇。请你帮帮他

给定两个整数,计算的因子个数。

tips:表示组合数,也就是从 个元素中选取 个元素的不同组合的总数。它也可以通过组合公式计算:=

输入格式

第一行包含两个整数 ()

输出格式

输出 的因子个数。答案可能很大,请对取模。

样例

输入 #1

1 1

输出 #1

1

输入 #2

2 1

输出 #2

2

输入 #3

4 2

输出 #3

4

数据范围与提示

样例1: ,因子包含1个: 1

样例2: ,因子包含2个: 1,2

样例3: ,因子包含4个: 1,2,3,6