poj2407
欧拉函数裸题。
欧拉函数:在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。
欧拉函数的定义: E(N)= ( 区间[1,N-1] 中与 N 互质的整数个数).
对于 积性函数 F(X*Y),当且仅当 GCD(X,Y)= 1 时, F(X*Y) = F(X)* F(Y)
任意整数可因式分解为如下形式:
其中( p1, p2 ... pk 为质数, ei 为次数 )
所以
因为 欧拉函数 E(X)为积性函数, 所以
对于 , 我们知道 因为pi 为质数,所以 [ 1, pi-1 ] 区间的数都与 pi 互质
对于 区间[ 1, ] ,共有
个数, 因为
只有一个质因子,
所以与 约数大于1 的必定包含 质因子
, 其数量为
所以
又 E(N)为积性函数,所以可得 :
又因为 其中( p1, p2 ... pk 为质数, ei 为次数 )
但是此计算公式,除法过多,所以计算速度较慢
在程序中利用欧拉函数如下性质,可以快速求出欧拉函数的值 ( P为N的质因子 )
poj2407的更多相关文章
- poj2407(欧拉函数模板题)
题目链接:https://vjudge.net/problem/POJ-2407 题意:给出n,求0..n-1中与n互质的数的个数. 思路:欧拉函数板子题,先根据唯一分解定理求出n的所有质因数p1,p ...
- POJ2407 Relatives(欧拉函数)
题目问有多少个小于n的正整数与n互质. 这个可以用容斥原理来解HDU4135.事实上这道题就是求欧拉函数$φ(n)$. $$φ(n)=n(1-1/p_1)(1-1/p_2)\dots(1-1/p_m) ...
- poj2407 Relatives 欧拉函数基本应用
题意很简单 就是欧拉函数的定义: 欧拉函数是指:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) .题目求的就是φ(n) 根据 通式:φ(x)=x*(1-1/p1)*(1-1/ ...
- POJ2407–Relatives(欧拉函数)
题目大意 给定一个正整数n,要求你求出所有小于n的正整数当中与n互质的数的个数 题解 欧拉函数模板题~~~因为n过大~~~所以直接用公式求 代码: #include<iostream> # ...
- POJ2407(欧拉函数)
Relatives Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13598 Accepted: 6771 Descri ...
- poj2407(欧拉函数模板)
sqrt(n)复杂度 欧拉函数模板 #include <iostream> #include <cstdio> #include <queue> #include ...
- 51Nod 1136 欧拉函数 Label:数论
对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler's totient function.φ函数.欧拉商数等.例如:φ(8) = 4(Phi( ...
- 数论/the first wave
线性筛素数(原来我之前学的不是线性的啊... void getprime(){ rep(i,2,nmax){ if(!vis[i]) prime[++prime[0]]=i; for(int j=1; ...
- poj3090--欧拉函数
#include<iostream> using namespace std; //欧拉函数 int eular(int n){ ,i; ;i*i<=n;i++){ ){ n/=i; ...
随机推荐
- Disconnected: No supported authentication methods available (server sent: publickey)
安装Git客户端后,进行PULL时报如下错误 disconnected no supported authentication methods available(server sent: publi ...
- 复杂领域的Cynefin模型和Stacey模型
最近好奇“复杂系统”,收集了点资料,本文关于Cynefin模型和Stacey模型.图文转自互联网后稍做修改. Cynefin模型提供一个从因果关系复杂情度来分析当前情况而作决定的框架,提出有五个领域: ...
- PL/SQL基础1(笔记)
--基本结构DECLARE--变量声明部分:在此声明PL/SQL用到的变量,类型,游标,以及局部的存储过程和函数BEGIN --执行部分:过程及SQL语句,即程序的主要部分 EXCEPTION --执 ...
- C语言的判断语句
// // main.c // homeWork1222 //// #include <stdio.h> int main(int argc, const char * argv[]) { ...
- 斯坦福iOS7公开课1-3笔记及纸牌Demo
1.MVC Model:模型 描述程序是什么,例如数据库操作之类的行文以及纸牌Demo里纸牌玩法都是写在Model这一层,通过Notification和KVO(后续文章会介绍)两种方式与Control ...
- iOS网络-04-大文件下载
大文件下载注意事项 若不对下载的文件进行转存,会造成内存消耗急剧升高,甚至耗尽内存资源,造成程序终止. 在文件下载过程中通常会出现中途停止的状况,若不做处理,就要重新开始下载,浪费流量. 大文件下载的 ...
- iOS之通过PaintCode快速实现交互动画的最方便方法 未解问题
需求: 问题: 源码百度云下载链接: http://pan.baidu.com/s/1o7r4hCm 密码: 8atd 其他学习链接:http://www.jianshu.com/p/90d6cd35 ...
- android 之 adb 启动问题的一般解决办法
有时,当我们打开eclipse准备运行Android项目时,虚拟机会启动不了,并且会出现下面的报错. [2015-10-07 16:47:46 - Game2048] ---------------- ...
- 由一个activity跳转到另一个activity
定义一个按钮,当点击的时候跳转到另一个activity的界面 1.新建第二个activity 2.在第二个Java源码处继承第一个activity,导入 3.在source中复写Oncreat方法 4 ...
- Linux学习书目
Linux基础 1.<Linux与Unix Shell 编程指南> C语言基础 1.<C Primer Plus,5th Edition>[美]Stephen Prata著 2 ...