HDU1286
欧拉函数测试题
期末考试完了做下水题
更好的方法是phi[i]==i时就直接筛选,不改了
#include<bits/stdc++.h>
using namespace std;
const int maxn = 4e4+11;;
typedef unsigned long long ll;
bool isnprime[maxn];
int prime[maxn];
ll phi[maxn];
int sai(int n){
isnprime[0]=isnprime[1]=1;
for(int i = 2; i*i <= n; i++){
if(!isnprime[i]){
for(int j = 2*i; j <= n; j+=i){
isnprime[j]=1;
}
}
}
int cnt=0;
for(int i = 1; i <= n; i++) if(!isnprime[i]) prime[cnt++]=i;
return cnt;
}
void euler(int n,int pn){
for(int i = 1; i <= n; i++) phi[i]=i;
for(int i = 0; i < pn; i++){
for(int j = prime[i]; j <= n; j+=prime[i]){
phi[j]=phi[j]/prime[i]*(prime[i]-1);
}
}
// for(int i = 1; i <= n; i++) cout<<i<<" "<<phi[i]<<endl;
}
int main(){
ios::sync_with_stdio(0);
int cnt=sai(32768);
euler(32768,cnt);
int T,t; cin>>T;
while(T--){
cin>>t;cout<<phi[t]<<endl;
}
return 0;
}
HDU1286的更多相关文章
- 欧拉函数 - HDU1286
欧拉函数的作用: 有[1,2.....n]这样一个集合,f(n)=这个集合中与n互质的元素的个数.欧拉函数描述了一些列与这个f(n)有关的一些性质,如下: 1.令p为一个素数,n = p ^ k,则 ...
- HDU1286新朋友欧拉函数版
找新朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- 【欧拉函数】【HDU1286】 找新朋友
找新朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- hdu1286 寻找新朋友 (欧拉功能)
原标题:点击打开链接 关于欧拉函数的算法具体解说:点击打开链接 欧拉函数 1.欧拉函数是不全然积性函数. 2.欧拉函数p(x) = x * (p1 - 1) / p1 * (p2 - 1)/p2 * ...
- 欧拉函数之HDU1286找新朋友
找新朋友 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submissi ...
- hdu1286 找新朋友
找新朋友 http://acm.hdu.edu.cn/showproblem.php?pid=1286 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- hdu1286(找新朋友)&&POJ2407Relatives(欧拉函数模版题)
http://acm.hdu.edu.cn/showproblem.php?pid=1286 没什么好说的,模板题,主要是弄懂欧拉函数的思想. #include <iostream> #i ...
- 找新朋友---hdu1286(欧拉函数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286 欧拉函数:对正整数n,欧拉函数是求少于n的数中与n互质的数的数目: 素数(质数)指在一个大于1的 ...
- hdu1286 找新朋友 欧拉函数模板
首先这一题用的是欧拉函数!!函数!!不是什么欧拉公式!! 欧拉函数求的就是题目要求的数. 关于欧拉函数的模板网上百度一下到处都是,原理也容易找,这里要介绍一下另一个强势模板. 在这一题的讨论里看到的. ...
随机推荐
- 61-结点选择(树形dp)
http://lx.lanqiao.cn/problem.page?gpid=T14 算法训练 结点选择 时间限制:1.0s 内存限制:256.0MB 问题描述 有一棵 n 个 ...
- Chrome OS上可运行Linux
说起Chrome OS,可能多数人第一时间联想的不是操作系统,而是在浏览器领域颇为流行的谷歌Chrome浏览器.其实,Chrome OS也是谷歌 旗下的一款产品,是一款Google开发的基于Linux ...
- 41、Aspera下载安装运用
参考:http://www.so.com/linkm=aLVHG%2FgJT4HyuVeK4%2BxX2LMFvF6oTiTCaruHE20pwjRia7DmVI2hIVfmw%2BFNPczCtvX ...
- logistic growth model . 求解方法 (高斯牛顿法)
https://www.stat.tamu.edu/~jnewton/604/chap4.pdf http://www.metla.fi/silvafennica/full/sf33/sf334327 ...
- 截取utf8中文字符串
英文直接截取即可. 中文应字节长度会乱码,应先转unicode截取. 如下: #-*- coding:utf8 -*- s = u'截取中文' s.decode('utf8')[0:3].encode ...
- ubuntu扩展屏幕
1.了解设置的名称 直接运行xrandr(不带任何参数)就可以显示出当前的显示设备及设备的模式. xdj@xdj-Presario-CQ42-Notebook-PC:~$ xrandr Screen ...
- What is difference between 3-layer architecture and MVC architecture?
By Vikas Singh on Sep 26, 2014 In 3-layer architecture 3-layer architecture separates the applicati ...
- 20169219 实验三 敏捷开发与XP实践 报告
实验内容 1.求命令行传入整数参数的和. package exp3; public class TestArgs01 { public static void main(String[] args) ...
- LibreOJ 6281 数列分块入门 5(分块区间开方区间求和)
题解:区间开方emmm,这马上让我想起了当时写线段树的时候,很显然,对于一个在2^31次方以内的数,开方7-8次就差不多变成一了,所以我们对于每次开方,如果块中的所有数都为一了,那么开方也没有必要了. ...
- POJ3020 Antenna Placement(二分图最小路径覆盖)
The Global Aerial Research Centre has been allotted the task of building the fifth generation of mob ...