hdu|hdu 5528 2022-01-05 hdu5528 #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int MAX = 1e5 + 5; bool u[MAX]; int prime[MAX], num; void initial() { memset(u, true, sizeof(u)); num = 0; for(int i = 2; i < MAX; i++) { if(u[i]) prime[num++] = i; for(int j = 0; j < num; j++) { if(i*prime[j] >= MAX) break; u[i*prime[j]] = false; if(i%prime[j] == 0) break; } } }int n; void input() { scanf("%d", &n); }void solve() { long long ans = 1, other = n; for(int i = 0; prime[i]*prime[i] <= n; i++) { if(n%prime[i] == 0) { int cnt = 1; long long mul = 1; while(n%prime[i] == 0) { mul *= prime[i]; cnt++; n /= prime[i]; } other *= cnt; mul *= prime[i]; long long a = (mul - 1)/(prime[i] - 1), b = mul + 1, c = prime[i] + 1; ans *= ((a/c)*(b/c)*c + a%c*(b/c) + b%c*(a/c)); //防溢出计算(mul^2 - 1)/(prime[i]^2 - 1) } } if(n > 1) { other *= 2; ans *= (1 + (long long)n*n); } printf("%lld\n", ans - other); }int main() { initial(); int T; scanf("%d", &T); for(int t = 1; t <= T; t++) { input(); solve(); } return 0; } 推荐阅读 Docker容器下快速搭建Hyperf框架在Windows系统的本地开发环境 u盘启动快捷键u盘启动快捷键 吃了止痛药能打新冠疫苗吗 FGO魔伊复刻流程攻略 魔法少女纪行复刻活动流程推荐 随性写的 高三学生经商有前途吗? 让你的打印机重获新生 益普生打印机废墨清零软件下载 3000元价位手机怎么选好 3000元价位手机怎么选 安乐什么意思 安乐是什么意思 王者荣耀狂铁所有皮肤 王者荣耀狂铁战令皮肤怎么样 代理服务器出了什么问题? 代理服务器不能怎么回事 纵向沟通与横向沟通有何不同 横向沟通与纵向沟通各有哪些优缺点 吃南瓜子能减肥吗 圆的面积和底面积一样吗? 圆的面积和底面积一样吗 手机cpu怎么设置最佳性能 宫腔镜|不知道宫腔镜有何优势?给你列出这3点,可别小瞧了 急脾气的妈妈怎么对待慢性子的孩子 粉扑拿回来要洗吗 粉扑用完怎么放置 的哥马上要交班,却闯祸又丢工作 mysql查询前三名 mysql查询第三到第五