51NOD 1188 数学
来源:互联网 发布:proteus isis仿真软件 编辑:程序博客网 时间:2024/06/06 05:17
简略题意:求
得到上面的式子就可以在
需要注意的是题目的数据卡常,需要优化一下。
#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn = 5000010;void out(LL x) { if(x > 9) { out(x/10); } putchar(x%10+'0');}namespace sss { bool tag[maxn]; int p[maxn/10]; int phi[maxn]; LL f[maxn]; int cnt; int t, n; void init() { cnt = 0; phi[1] = 1; for(int i = 2; i < maxn; i++) { if(!tag[i]) { p[cnt++] = i; phi[i] = i - 1; } for(int j = 0; j < cnt && p[j] * i < maxn; j++) { tag[i*p[j]] = 1; if(i % p[j] == 0){ phi[i*p[j]] = phi[i] * p[j]; break; } phi[i*p[j]] = phi[i] * (p[j]-1); } } for(int i = 1; i <= 5000000; i++) { for(int j = i, p = 1; j <= 5000000; j+=i, p++) { f[j] += 1LL * i * phi[p]; } } for(int i = 1; i <= 5000000; i++) f[i] += f[i-1] - i; } void solve() { scanf("%d", &t); while(t--) { scanf("%d", &n); out(f[n]);puts(""); } }}int main() { sss::init(); sss::solve(); return 0;}
阅读全文
0 0
- 51NOD 1188 数学
- 51nod 1003【数学】
- 51nod 1433【数学】
- 51NOD 1629 数学
- 51NOD 1179 数学
- 51nod 1138 【数学-等差数列】
- 51nod 1040 最大公约数之和 (数学)
- 51nod 1073 约瑟夫环 (数学)
- 51nod 1228 (伯努利数 + 组合数学)
- [51Nod 1189阶乘分数]数学
- 51nod 1419 最小公倍数挑战(数学)
- 51Nod - 1677 树形dp + 组合数学
- [51NOD]1283 最小周长[数学]
- 51nod 1718 Cos的多项式 【数学】
- 51Nod 1596 搬货物 (数学
- 51Nod 1413 权势二进制 ( 数学
- 51nod 四点共面(数学)
- 51nod 瞬间移动 (组合数学)
- Spring IoC、DI 的解释
- JVM 内存初学 (堆(heap)、栈(stack)和方法区(method) )
- Scala 中当方法不需要接受参数时可定义成两种类型的方法
- caffe-pycaffe
- 设计模式--观察者模式
- 51NOD 1188 数学
- poj3069(贪心)
- Java修饰符访问权限_动力节点Java学院整理
- 机房---宏观把控
- Spring,JOTM,Mybatis多数据源动态配置和使用
- SSH整合
- 负载均衡之权重轮询调度算法
- 使用jsp作为视图模板&常规部署
- BZOJ 1003 [ZJOI2006]物流运输 SPFA+动态规划