poj2773 欧拉函数+整除性质

欧拉函数(详解)-数论 欧拉函数:对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。例如euler(8)=4,因为1,3,5,7均和8互质。 Euler函数表达通式:euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),其中p1,p2……pn为x的所有素因数,x是不为0的整数。euler(1)=1(唯一和1互质的数就是1本身)。 欧拉公式的延伸:一个数的所有质因子之和是euler(n)*n/2。 欧拉定理:对于互质的正整数a和n,有aφ(n) ≡ 1 mod n。 欧拉函 阅读详情
Happy 2006
Time Limit: 3000MS Memory Limit: 65536K
Total Submissions: 10751 Accepted: 3744

Description

Two positive integers are said to be relatively prime to each other if the Great Common Divisor (GCD) is 1. For instance, 1, 3, 5, 7, 9...are all relatively prime to 2006. 

Now your job is easy: for the given integer m, find the K-th element which is relatively prime to m when these elements are sorted in ascending order. 

Input

The input contains multiple test cases. For each test case, it contains two integers m (1 <= m <= 1000000), K (1 <= K <= 100000000).

Output

Output the K-th element in a single line.

Sample Input

2006 1
2006 2
2006 3

Sample Output

1
3
5


题意:求出与m互素的第k大的数

首先,介绍一个定理:若a与b不互素,则,tb+a与b也不互素,若a与b互素,则tb+a与b互素。所以,这个题目可以先求出m以内的与m互素的数,大于m的可以用l*m+a求出,其中a为小于m的与m互素的数,l为循环次数。

用欧拉函数求出循环长度,同时对m以内的素数(即大于m的素数%m的余数)进行标记

(吐槽一下,昨天用sublime打欧拉的模板打错了,在dev上改了过来,sublime上保存的依然是错的,今天拿着错误的模板wa了好多发……也是醉了)


#include <stdio.h>
#include<string.h> 
long long m,k;
int pan[1000008];
long long phi(long long n)
{   long long m=n;
	long long  i,cnt,j;
	cnt=n;
	for(i=2;i*i<=n;i++)
	{ 
	  if(n%i==0)
	  { 
	    for(j=i;j<=m;j=j+i)pan[j]=1;
	  	cnt=cnt-cnt/i;
	  	while(n%i==0)n=n/i;
	    
	  }
	}
	//printf("n:%lld\n",n);
	if(n>1){for(j=n;j<=m;j=j+n)pan[j]=1;cnt=cnt-cnt/n;}
    return cnt;
}

int main(int argc, char const *argv[])
{   long long i,n;
	while(~scanf("%lld%lld",&m,&k))
	{ if(m==1){printf("%lld\n",k);continue;}
	  memset(pan,0,sizeof(pan));
      long long f=phi(m);
      
     // for(i=1;i<=m;i++)printf("%lld:%lld\n",i,pan[i]);
      long long t=(k-1)/f;  
      long long p=(k-1)%f+1;
      long long cnt=0;
      for(i=1;i<=1000001;i++)
      {
        if(pan[i]==0)cnt++;
        if(cnt==p){cnt=i;break;}
      }
      long long sum=cnt+t*m;
      printf("%lld\n",sum);     
	}
	return 0;
}



告别PXE!用iPXE在CentOS 8.5上搭建一个能同时装Win11和Linux的万能网络启动盘 本文详细介绍了如何在CentOS 8.5上使用iPXE搭建支持Windows 11和Linux双系统部署的全能网络启动盘。通过对比传统PXE的局限性,展示了iPXE在HTTP协议支持、多架构适配和智能脚本方面的优势,提供从环境准备、服务配置到智能菜单开发的完整解决方案,显著提升系统部署效率。 阅读详情

相关推荐

STM32裸机开发基础:寄存器直接操作详解

寄存器是微控制器内部的特殊存储单元,直接与硬件电路连接,用于控制和监视硬件功能。与普通内存不同,寄存器的每一位(bit)通常都有特定的硬件含义。寄存器就是机器的控制面板上的各种开关和指示灯每个开关控制一个具体功能(如打开LED、启动通信)每个指示灯显示一个具体状态(如数据接收完成、错误发生)// GPIO引脚定义1。

2401_88760782的博客 2186

欧拉函数最全总结

文章目录欧拉函数的内容一、欧拉函数的引入二、欧拉函数的定义三、欧拉函数的性质四、欧拉函数的计算方法(一)素数分解法(二)编程思维1.求n以内的所有素数2.求φ(n)3.格式化输出0-100欧拉函数表(“x?”代表十位数,“x”代表个位数)五、欧拉函数相关定理以及证明(一)定理1:缩系与欧拉函数的关系(二)定理2:缩系的充要条件(三)定理3:缩系拓展1. 简单证明:(a,m)=1,(x,m)=1,故(ax,m)=1。(四)定理4:设m>1,(a,m)=1,则aφ(m)≡1(mod m).1. **若ac≡bc

jiet07的博客 5万+

JMeter压测Dubbo接口的完整落地方案(适配3.x)

Dubbo作为主流Java微服务RPC框架,其接口压测长期面临协议私有、注册发现复杂、序列化耦合度高等技术门槛。理解Dubbo基于TCP长连接、泛化调用与SPI扩展机制的核心原理,是实现稳定压测的前提;技术价值在于绕过HTTP网关直击服务核心链路,保障大促等关键场景的性能可信度;典型应用场景包括电商订单链路压测、风控/库存等内部Dubbo服务SLA验证,以及CI/CD中性能左移实践。本文聚焦Dubbo 3.x版本,提供零第三方插件、可复用、避坑的JMeter Java Sampler落地路径。

weixin_33700809的博客 549

欧拉函数求法与应用

欧拉函数在OI中是个非常重要的东西,不知道的话会吃大亏的. 欧拉函数用希腊字母φ表示,φ(N)表示N的欧拉函数. 对φ(N)的值,我们可以通俗地理解为小于N且与N互质的数的个数(包含1).

sentimental_dog的博客 3万+

相机图像质量研究(15)常见问题总结:光学结构对成像的影响--暗角

老式相机的暗角往往比较明显,周围一圈能够明显感觉到亮度下降的很多,当然有些电源模仿手持相机的摄影效果,也能看到周围明显的亮度下降。一、

xiaoshixiu的专栏 1121

避坑指南:STM32CubeMX安装后,你的第一个工程为什么中文全是乱码?

本文详细解析了STM32CubeMX安装后中文乱码问题的根源及解决方案。从诊断乱码现象到分析编码冲突背景,提供了新项目UTF-8化、旧项目GBK兼容及版本降级等多种实用方案,帮助开发者彻底解决这一常见问题。

weixin_30699955的博客 474

欧拉函数

欧拉函数φ(n)是1~n-1的与n互质的数的个数 欧拉函数公式:φ(n)=n*(1-1/p1)*(1-1/p2)*(1-1/p3)*...*(1-1/pn);这里的pi是n的所有质因数,n>0。 欧拉定理:若n为素数,φ(n)=n-1。 若n的另一个素数p的a次幂,φ(p^a)=(p-1)*p^(a-1),比p^a小的数有p^a-1个,那么有p^(a-1)-1个数能被p所整除(1~p^...

Endeavor_G的博客 3634

GAMES104:02引擎架构分层-学习笔记

用户层工具层(Tool Layer):编辑器、工具界面功能层(Function Layer):渲染Rendering、动画Animation、物理Physics、相机Camera和实现游戏性的脚本Script、状态机FSM、AI等功能模块资源层(Resource Layer):各类图片、动画、音频资源加载核心层(Core Layer):核心功能如内存管理、容器分配、数据计算、多线程处理等平台层(Platform Layer):对接不同游戏平台、主机和硬件。

噗噗噗的博客 1266

欧拉函数,看了总结

走马观花,囫囵吞枣 https://blog.youkuaiyun.com/liuzibujian/article/details/81086324

天天向上 541

C语言实战:最小二乘法在传感器数据校准中的应用(附完整代码)

本文详细介绍了如何使用C语言实现最小二乘法,对传感器数据进行线性校准。通过模拟带噪声的传感器数据,手把手演示了从核心算法实现、参数计算到效果验证的完整流程,并提供了可直接编译运行的完整源码,帮助嵌入式开发者解决传感器数据不准的常见问题,提升系统测量精度。

weixin_28025327的博客 515

Workbench中直接调用ICEM CFD进行网格划分

自从ANSYS 12.0之后,ICEM CFD就从Workbench中被分离出去,作为一个独立的程序使用了。取而代之的是Meshing模块。 在Meshing的属性节点菜单中右键点击Mesh,选择Insert > Method,插入方法。 选择需要划分网格的几何体,点击apply。此时Geometry显示为1 Body。 设置Method为MultiZone,如果不设置成这个的话,找不到进入ICEM CFD的入口。如果要划分四面体,可以在Mapped Mesh Type中选择其他类型。

Yan的博客 6509

数论

一、欧几里得算法 int gcd(int a,int b) { return b==0?a:gcd(b,a%b); } 若gcd (a, b)=m,则gcd (a/m, b/m)=1 最小公倍数 LCM(a,b)=a/gcd(a,b)*b 题目:POJ2773---Happy 2006 由题目可知k的范围明显比m大,想到往周期性靠拢 由gcd性质可得gcd(a, b)=gcd...

KingTom 257

LeetCode --- 937. Reorder Data in Log Files 解题报告

You are given an array oflogs. Each log is a space-delimited string of words, where the first word is theidentifier. There are two types of logs: Letter-logs: All words (except the identifier) consist of lowercase English letters. Digit-logs: All word..

杨鑫newlife的专栏 425

欧拉函数性质

先来介绍几个与欧拉函数有关的定理: 定理一:设m与n是互素的正整数,那么 定理二:当n为奇数时,有。 因为2n是偶数,偶数与偶数一定不互素,所以只考虑2n与小于它的奇数互素的情况,则恰好就等于n的欧拉函数值。 定理三:设p是素数,a是一个正整数,那么 关于这个定理的证明用到容斥: 由于表示小于与互素数的正整数个数,所以用减去与

韩小侠的专栏 已迁移至lssea.com 3230

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

欧拉函数的一些性质

1.所有n的因数的欧拉函数值之和为n 2.小于N且与N互质的数的和为

AlanJobs的博客 378

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

#欧拉函数,整除分块#洛谷 1447 JZOJ 2225 能量采集

题目 ∑i=1n∑j=1m2×gcd(i,j)−1\sum_{i=1}^n\sum_{j=1}^m2\times gcd(i,j)-1i=1∑n​j=1∑m​2×gcd(i,j)−1 分析 原式=2×(∑i=1n∑j=1mgcd(i,j))−nm2\times(\sum_{i=1}^n\sum_{j=1}^mgcd(i,j))-nm2×(i=1∑n​j=1∑m​gcd(i,j))−nm 重点就是...

lemondinosaur的博客 286

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

欧拉函数相关数论

欧拉函数 欧拉函数ϕ(n)\phi(n) 的百度百科定义是:“对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(ϕ(1)=1)(\phi(1)=1)。”不如将小于改成小于等于,倒是省去ϕ(1)\phi(1) 的特例。关于欧拉函数的证明,不多赘述。本文侧重于欧拉函数在编程竞赛中的应用,这里只将其中三个知识点提出来(其他公式皆可由这三个公式推导得出): 1.ϕ(1)=1\phi(1)=

Dmaxiya 831

欧拉函数学习小结 #nobody

POJ 1284 首先说明什么叫a模p的阶? 《数论概论》中“幂模p与原根”一章中有提到阶的概念: 如果a不被素数p整除,则a模p的阶是指使得 a^e=1(mod p)的最小指数e>=1; 例如2、3、4、5、6模7的阶分别是3、6、3、6、2。  并且本章中给出一些重要的性质,其中有:一个数a模p的阶e总能整除p-1。 那么什么叫原根(primitive

XDU_Truth的专栏 1259

【数论】欧拉函数

欧拉函数:对正整数 nnn ,欧拉函数是小于等于 nnn 的数中与 nnn 互质的数的个数。 欧拉函数又称 ϕϕ\phi 函数,例如 ϕ(8)=4ϕ(8)=4\phi(8) = 4 ,因为在小于 888 的数中,有 1,3,5,71,3,5,71, 3, 5, 7 与其互质。 欧拉函数的三条性质: 如果 nnn 为某一素数 ppp ,则: ϕ(p)=p−1ϕ(p)=p−1\phi(p) =...

夕弦 655

欧拉函数介绍及简单模板

欧拉函数:对于一个正整数n,小于n且与n互质的正整数的个数,记做:φ(n),其中φ(1)被定义为1,但是并没有任何实质的意义。 特殊性质:当n为奇数时,φ(2n)=φ(n)。 当n为素数时:φ(n) = n - 1; (1)φ(n) = n * (1 - 1/p1) * (1 - 1 / p2) * ... * (1 - 1 / pn) (pi是n的质因子) 求小于n且与n...

deyou1988的专栏 196

欧拉函数性质及推导

互质 gcd(a,b) = 1 则a,b互质, gcd(a,b,c) = 1 则两两互质 gcd(a,b) = gcd(a,c) = gcd(b,c) = 1 欧拉函数 定义:[1,N)中与N互质数的个数被称为欧拉函数,记作 υ(N)\upsilon(N)υ(N) 由算数基本定理知:N=p1c1∗p2c2∗p3c3∗……∗piciN = p_1^{c_1} * p_2^{c_2}*p_3^{...

_llc的博客 1742

ACM数论

1、本原勾股数: 概念:一个三元组(a,b,c),其中a,b,c没有公因数而且满足:a^2+b^2=c^2 首先,这种本原勾股数的个数是无限的,而且构造的条件满足: a=s*t,b=(s^2-t^2)/2,c=(s^2+t^2)/2 其中s&gt;t&gt;=1是任意没有公因数的奇数! 由以上概念就可以导出任意一个本原勾股数组。 2、素数计数(素数定...

java开发指南博客 【转载】 291

欧拉函数和莫比乌斯函数

多校赛上最近有道题目是gugufishtion Problem Description Today XianYu is too busy with his homework, but the boring GuGu is still disturbing him!!!!!! At the break time, an evil idea arises in XianYu’s mind. ‘Co...

wybooooooooo的博客 3851

欧拉函数性质证明 : n所有约数的欧拉函数和等于n

性质:对于正整数n ∑d|nϕ(d)=n\sum_{d|n}\phi(d) = n 证明过程 (1)如果 n = 1 ϕ(n)=1=n\phi(n) = 1 = n 满足 (2)如果n是质数 ϕ(n)=n(1−1n)=n−1\phi(n) = n(1 - \frac{1}{n}) = n - 1 所以ϕ(n)+ϕ(1)=n\phi(n) + \phi(1) = n 满足 (3

退役ACMer 5312
上一篇: poj 1284欧拉函数求素数元根个数
下一篇: poj 2478 Farey Sequence 欧拉函数递推打表
ctrss
博客等级 码龄11年 1粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值