#include #include #include #include #include using namespace std; int a[100][100]; int F(int n,int m) { if(a[n][m]>0){ return a[n][m];//记忆搜索 } if(n==1) return a[1][m]=1; if(m==1) return a[n][1]=1; if(nm) return a[n][m]=F(n,m-1)+F(n-m,m); } int GD(int x) { int i; int count=0; for(i=1;i<=x/2;i++) { if(x%i==0) count++; } return count; } int main() { int n; while (scanf("%d",&n)!= EOF) { memset(a,-1,sizeof(a)); printf("%d\n",F(n,n)-GD(n)-1); } return 0; }
点赞 评论

相关推荐

12-27 22:28
门头沟学院 Java
点赞 评论 收藏
分享
12-13 14:51
已编辑
井冈山大学 算法工程师
龙虾x:算法比你强的没有你美,比你美的…..算了已经没有比你美的了
工作两年想退休了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务