信奥数学-欧拉函数-欧拉定理-费马小定理
欧拉函数
定义:欧拉函数是小于n的数中与n互质的数的数目。例如φ(8)=4,因为1,3,5,7均和8互质
φ(8)=8*(1-1/2)=4
#include<bits/stdc++.h>
using namespace std;
/*
f(n)=n*(1-1/p)*(1-1/q)...
=n*p/(p-1) /q*(q-1) ...
先除后乘避免溢出
*/
int euler(int n) {
int ans = n;
for (int i = 2; i*i <= ans; i++) {
if (n % i == 0) {
ans = ans / i * (i-1);//找到一个因子
// 将相同的因子除去
while (n % i == 0) {//如果n多次使用此因子相乘 去除
n /= i;
}
}
}
if (n > 1) {//由于for循环到i*i<=ans 所以不是i^2时 n都>1 少算一个质数 再运算一次
ans = ans / n * (n-1);
}
return ans;
}
int n;
int main(){
while(cin>>n){
cout<<euler(n)<<endl;
}
}
P3601 签到题
https://www.luogu.com.cn/problem/P3601
** [SDOI2008] 仪仗队**
https://www.luogu.com.cn/problem/P2158
欧拉函数-欧拉定理
https://www.bilibili.com/video/BV1up4y1H7XW?spm_id_from=333.999.0.0&vd_source=29bdf11ae30b7aaca85ec74dc1b8e1ad
https://www.bilibili.com/video/BV1vf4y1p7Mc/?spm_id_from=333.788.recommend_more_video.-1&vd_source=29bdf11ae30b7aaca85ec74dc1b8e1ad
费马小定理
假如p是质数,且gcd(a,p)=1,那么 \(a^{(p-1)}≡1(mod~p)\)。
即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1
薇薇带你一分钟学会费马小定理
https://www.bilibili.com/video/BV1La4y1e7T5?spm_id_from=333.337.search-card.all.click
素数(五)费马是如何检验素数的
https://www.bilibili.com/video/BV1vt411Z7Yb?spm_id_from=333.337.search-card.all.click
作者:newcode 更多资源请关注纽扣编程微信公众号

从事机器人比赛、机器人等级考试、少儿scratch编程、信息学奥赛等研究学习

浙公网安备 33010602011771号