POJ 2478 欧拉函数打表的运用
2024-08-30 15:19:06
http://poj.org/problem?id=2478
此题只是用简单的欧拉函数求每一个数的互质数的值会超时,因为要求很多数据的欧拉函数值,所以选用欧拉函数打表法。
PS:因为最后得到的结果会很大,所以结果数据类型不要用int,改为long long就没问题了
#include <iostream>
#include <stdio.h>
using namespace std;
#define LL long long
LL F[];
int phi[]; void phi_table(int n)
{
for(int i=;i<=n;i++)phi[i]=;
phi[]=;
for(int i=;i<=n;i++)
if(!phi[i])
for(int j=i;j<=n;j+=i)
{
if(!phi[j])phi[j]=j;
phi[j]=phi[j]/i*(i-);
}
} int main()
{
int n;
F[]=;
phi_table();
for(int i=;i<=;i++) F[i] = F[i-]+phi[i];
while(scanf("%d",&n)&&n!=){
cout<<F[n]<<endl;
}
return ;
}
最新文章
- 当GitHub把我当成DDos攻击者拉进了黑名单中。。。
- 项目修改有感_主要是以js、Gridview为主
- 通过HTTP协议实现多线程下载
- 洛谷P2085 最小函数值(minval)
- 【BZOJ】【1986】【USACO 2004 Dec】/【POJ】【2373】划区灌溉
- ubuntu下安装pthread的manpages(man 手册) 在Ubuntu中查看STL帮助
- java代码转换为c# 工具
- HDU 5794 - A Simple Chess
- (大数据工程师学习路径)第四步 SQL基础课程----SQL介绍及mysql的安装
- css05 字体以及行间距
- 模拟select,隐藏下拉列表的几种实现
- 把java程序作为windows服务运行
- LINQ Group By操作(转载)
- 【转】浅谈JavaScript中forEach与each
- HTTP response 添加body
- 2.15 C++常量指针this
- 【Spring学习笔记-4】注入集合类List、Set、Map、Pros等
- Day 38 Semaphore ,Event ,队列
- Linux操作系统多线程信号总结
- ButterKnife 8.4注入失败