题解

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 1LL<<30;
const int N = 10000000;
int prime[N+5], low[N+5], check[N+5], pow_cnt[N+5], tot, f[N+5], f2[N+5], f3[N+5];
void sieve() {
memset(check, 0, sizeof(check));
low[1] = 1; tot = 0; f[1] = f2[1] = f3[1] = 1; pow_cnt[1] = 0;
for(int i = 2; i <= N; ++i) {
if(!check[i]) {
low[i] = i; prime[tot++] = i;f[i] = i-2;
f2[i] = i; f3[i] = i; pow_cnt[i] = 1;
}
for(int j = 0; j < tot; ++j) {
if(i * prime[j] > N) break;
check[i*prime[j]] = 1;
if(i % prime[j] == 0) {
pow_cnt[i * prime[j]] = pow_cnt[i] + 1;
low[i * prime[j]] = low[i] * prime[j];
if(low[i] == i) {
if(i == prime[j]) f[i * prime[j]] = prime[j]*prime[j]+1-2*prime[j];
else f[i * prime[j]] = f[i] * prime[j];
f2[i * prime[j]] = f2[i];
f3[i * prime[j]] = f3[i];
if(pow_cnt[i*prime[j]] % 2 == 1) f2[i * prime[j]] *= prime[j];
if(pow_cnt[i*prime[j]] % 3 == 1) f3[i * prime[j]] *= prime[j];
}else {
f[i * prime[j]] = f[i / low[i]] * f[low[i] * prime[j]];
f2[i * prime[j]] = f2[i / low[i]] * f2[low[i] * prime[j]];
f3[i * prime[j]] = f3[i / low[i]] * f3[low[i] * prime[j]];
}
break;
}else {
low[i * prime[j]] = prime[j];
pow_cnt[i * prime[j]] = 1;
f[i * prime[j]] = f[i] * f[prime[j]];
f2[i * prime[j]] = f2[i] * f2[prime[j]];
f3[i * prime[j]] = f3[i] * f3[prime[j]];
}
}
}
}
int t, A, B, C;
int main() {
sieve();
// for(int i = 1; i <= 100; ++i) {
// cout << f3[i] << " ";
// }cout << endl;
scanf("%d", &t);
while(t--) {
scanf("%d%d%d", &A, &B, &C);
ll ans = 0;
for(int i = 1; i <= max(A,max(B,C)); ++i) {
ans = (ans + (A/i)*(B/f2[i])%mod*(C/f3[i])%mod*f[i]%mod)%mod;
}
cout << ans << endl;
}
}

最新文章

  1. .Net 转战 Android 4.4 日常笔记(8)--常见事件响应及实现方式
  2. 问题解决——开启Guest后仍无法共享打印机
  3. 搭建web服务器环境
  4. PHP第四章数组2
  5. 一起啃PRML - 1.2 Probability Theory 概率论
  6. Ubuntu Apache 伪静态配置 url重写 步骤
  7. 最近因为textview高度问题疯了疯了疯了
  8. 内网穿透神器ngrok(转)
  9. visual Studio 无法调试,提示程序跟踪已退出
  10. Java进阶(四十六)简述ArrayList、Vector与LinkedList的异同点
  11. C++模板总结
  12. 对于react-redux的理解
  13. scrapy爬去京东书籍信息
  14. [译]Debug ASP.NET Core 2.0源代码
  15. FFmpeg的一般流程
  16. [Hinton] Neural Networks for Machine Learning - Bayesian
  17. 第二章 深入C#数据类型
  18. OEMCC 13.2 集群版本安装部署
  19. (转)Linux中设置服务自启动的三种方式
  20. 21069207《Linux内核原理与分析》第四周作业

热门文章

  1. 04 Memcached过期机制与删除机制
  2. jQuery动态加载JS以减少服务器压力
  3. Linux与本地上传下载文件
  4. willMoveToParentViewController和didMoveToParentViewController
  5. (转)Java并发编程:阻塞队列
  6. ubuntu 安装wine
  7. SDOI2017第一轮
  8. PAT 1058. 选择题(20)
  9. IaaS,PaaS,Saas 云服务的介绍
  10. Opennms -安装