type
status
date
slug
summary
tags
category
icon
password
创建时间
Dec 11, 2024 01:47 AM
给定正整数
k
,你需要找出可以被 k
整除的、仅包含数字 1
的最 小 正整数 n
的长度。返回
n
的长度。如果不存在这样的 n
,就返回-1。注意:
n
可能不符合 64 位带符号整数。枚举
这一道题,我刚开始的想法是
但是这样会导致数据溢出。
其实,我们不需要把数完全求处理,只是求数的位数。这样我们只需要针对每一位来求解。之前,遇到的很多算法题,都是类似的思路,不直接求这个数或问题,变换一下形式!!!
欧拉函数
参考 灵茶山艾府
欧拉函数(Euler's totient function), 即 , 表示的是小于等于 和 互质的数的个数。
欧拉函数的性质:即对任意满足 的整数 ( ), 有 。特别地, 当 是奇数时 。
欧拉定理──费马小定理的一般形式(求逆元)
欧拉定理:若 、 互素,则有 (费马小定理的一般形式)
例如 a = 5,p = 6
设 的长度为 ,那么 。 是 的倍数,等价于 是 的倍数,即 。 结论:最小的 必然是 的因子。 反证: 如果 ,根据欧拉定理, ,这说明有一个比 更小的 ,矛盾。那么计算 并枚举其因子 ,用快速幂判断 是否等于 。
