标签:
Description
Input
Output
Sample Input
Sample Output
1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cstring> 5 #include<algorithm> 6 #include<vector> 7 #include<stack> 8 #include<queue> 9 #include<map> 10 #include<set> 11 #include<math.h> 12 #include<string> 13 #include<cctype> 14 15 using namespace std; 16 17 const int maxn=1000100; 18 const int INF=(1<<29); 19 const double EPS=0.00000001; 20 typedef long long ll; 21 const ll p=1000000000+7; 22 23 ll n; 24 ll F[maxn]; 25 26 ll f(ll n) 27 { 28 if(F[n]!=-1) return F[n]; 29 if(n==1) return F[n]=1; 30 if(n==2) return F[n]=1; 31 if(n==3) return F[n]=2; 32 //return f(n-1)+(n%2==1?1:0)+1; 33 ll res=0; 34 res=(res%p+f(n-1)%p+1)%p; 35 for(int i=2;i<=n/2;i++){ 36 if(n%i==1) res=(res%p+f(n/i)%p)%p; 37 } 38 return F[n]=res%p; 39 } 40 41 void play() 42 { 43 for(int i=1;i<=1010;i++){ 44 printf("%I64d,",f(i)); 45 if(i%7==0) printf("\n"); 46 } 47 } 48 49 int main() 50 { 51 memset(F,-1,sizeof(F)); 52 int tag=1; 53 while(cin>>n){ 54 printf("Case %d: %I64d\n",tag++,f(n)); 55 } 56 return 0; 57 }
标签:
原文地址:http://www.cnblogs.com/--560/p/4543047.html