
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4472
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <queue>
#include <vector>
#include <utility>
using namespace std; const int maxn = ;
const int maxe = 1e6+;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 +; int main()
{ long long dp[maxn];
int n;
dp[] = ;
dp[] = ;
dp[] = ;
for(int i=;i<=;i++)
{
dp[i] = dp[i-];
for(int j=;j<=i-;j++)
{
if((i-)%j == )
{
dp[i] += dp[(i-)/j];
}
}
} int T = ;
while(cin>>n)
{
printf("Case %d: %d\n",++T,dp[n]%mod);
}
}