#include <iostream> #include<cstdio> #include <cmath> #include <map> using namespace std; map <int,int> a; int dfs(int n) { int i,t; if(a[n]) return a[n]; a[n]=0; t=sqrt(n*1.0);//double sqrt(double num);函数返回参数num的平方根。如果num为负,产生域错误。 for(i=1;i<=t;i++) if(n%i==0) { a[n]+=dfs(i); if(i*i!=n&&i!=1) a[n]+=dfs(n/i); } return a[n]; } int main() { int n; a[1]=1; while(scanf("%d",&n)!=EOF) { dfs(n); printf("%d/n",a[n]); } return 1; } #include <iostream> #include<cstdio> #include < 你的当前访问异常,请进行认证后继续阅读剩余内容。 提交