欧拉函数 - HDU1286
欧拉函数的作用:
有[1,2.....n]这样一个集合,f(n)=这个集合中与n互质的元素的个数。欧拉函数描述了一些列与这个f(n)有关的一些性质,如下:
1、令p为一个素数,n = p ^ k,则 f(n) = p ^ k - p ^ (k-1)
2、令m,n互质,则 f(m*n) = f(m) * f(n)
3、如果n为奇数,则 f(2 * n) = f(n)
下面给出一个例题的代码,例题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <algorithm> 5 #include <vector> 6 #include <string> 7 #include <cmath> 8 using namespace std; 9 const int maxn = 32769; 10 11 int ans[maxn],prim[4000],flag_p[maxn]; 12 /* 13 把1~maxn所有的素数打出来 14 */ 15 int SolPrim() 16 { 17 memset(flag_p,0,sizeof(flag_p)); 18 for(int i = 2;i < sqrt((double)maxn);++i) 19 for(int j = i * i;j < maxn;j += i) 20 flag_p[j] = 1; 21 int f = 0; 22 for(int i = 2;i < maxn;++i) 23 if(!flag_p[i]) 24 prim[f++] = i; 25 } 26 /* 27 打表,把结果全部打出来 28 */ 29 void PreSol() 30 { 31 int f = SolPrim(); 32 memset(ans,0,sizeof(ans)); 33 for(int i = 1;i < 32768;++i) 34 { 35 int temp = 1,t = i; 36 for(int j = 0;prim[j] <= i;++j) 37 { 38 int tt = 0; 39 while(t % prim[j] == 0) 40 { 41 t /= prim[j]; 42 tt++; 43 } 44 if(tt) temp *= (pow(prim[j],tt-1) * (prim[j] - 1)); 45 } 46 ans[i] = temp; 47 } 48 } 49 50 int main() 51 { 52 PreSol(); 53 int T,n; 54 scanf("%d",&T); 55 while(T--) 56 { 57 scanf("%d",&n); 58 printf("%d\n",ans[n]); 59 } 60 return 0; 61 }
View Code
转载于:https://www.cnblogs.com/xiaxiaosheng/p/4713977.html
欧拉函数 - HDU1286相关推荐
- HDU1286 找新朋友【欧拉函数】
找新朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi ...
- 【欧拉函数】 欧拉函数计算及打表
文章目录 一.欧拉函数简介 二.欧拉函数计算 三.欧拉函数值打表 四.练手题目 一.欧拉函数简介 在数论中,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目(因此φ(1)=1).此函数以 ...
- poj2154-color-polyan次二面体+欧拉函数优化
N<=1e9,O(nlogn)的做法会超时.从枚举置换转变为枚举轮换长度,然后可以利用欧拉函数,把复杂度变为O(√n * logn) 1 /*-------------------------- ...
- hdu 1286( 欧拉函数 )
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286 数学题真的是有点吃不消了... View Code 1 #include<iostream ...
- 费马定理中值定理_数论-欧拉函数、欧拉定理
欧拉函数 积性函数 满足 ( 互质) 定义 对于正整数 ,欧拉函数是小于等于 的所有数中与 互质的数的 个数. 欧拉函数是积性函数(这个证明不是很显然,这个链接里面有很多种证明方法) 记作: 公式 , ...
- poj2154(Polya+欧拉函数优化模版)
#include <cstdio> #include <cstring> #include<iostream> using namespace std; const ...
- 【数学专题】约数个数与欧拉函数
整理的算法模板合集: ACM模板 目录 一.约数个数 1. AcWing 1291. 轻拍牛头 2. AcWing 1294. 樱花 2.1 AcWing 197. 阶乘分解 3. AcWing 19 ...
- 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )
整理的算法模板合集: ACM模板 ①直接求小于或等于n,且与n互质的数个数(求[1,n]中所有数的欧拉函数时间复杂度:O(nn)O(n\sqrt{n})O(nn)) ②求[1,n]之间每个数的质因数 ...
- bzoj 1409 Password 矩阵快速幂+欧拉函数
可以发现,该数组的mi就是斐波那契数列 所以要矩阵快速幂搞出第n位 但是斐波那契数列上涨的很快,这就需要欧拉定理了 p^phi(q)%q=1(gcd(p,q)==1) p是素数,所以可以用 然后需要5 ...
最新文章
- CrackMe_001
- flume-hdfs 按照时间关闭并新开文件
- 最新OCR开源神器来了!
- vmware ESXI6.7 设置 Nvidia 显卡直通
- 计算灰度共生矩阵相关性时sigmax,y 为0的问题
- bat怎么获取前一天 的日期_bat脚本 得到前一天的日期
- 浅谈:数据结构之单链表,java代码演示单链表
- 一个简单的jQuery插件ajaxfileupload实现ajax上传文件例子
- oracle用hints调优,oracle hints的那点事
- 改造家里的开关成为智能开关,保留原有开关控制,零火版,基础入门(一)
- 总结:常见的攻击服务器的手段
- mongoDb一对多之springboot demo
- tp6 thinkswoole 使用极光curl请求时报错
- Png图片换色的方法
- Android 高新面试题
- java中小数后加f_在 Java 中,小数默认为 ,如果要指定 类型请在小数后加 F/f 。_学小易找答案...
- php atlas,使用Atlas实现读写分离
- css实现提示信息,纯CSS 实现tooltip 内容提示信息效果
- Arthas(阿尔萨斯)使用教程
- 外企九年-我最终选择放弃