互质数的个数(欧拉函数)C/C++
欧拉函数 O(n)=n(1-1/P1)(1-1/P2)…(1-1/Pn) ,其中P1…Pn为n的质因子,求出来的结果就是题目所求。
不知道为社么这么写时间超限,下面那种方式写就能过。
#include<iostream>
#include<cstdio>
#include<iomanip>
#include<cstdlib>
#include <algorithm>
#include<string.h>
#include<queue>
#include<math.h>
#include<set>
#define ll long long
using namespace std;int main()
{int t;cin >> t ;while(t--){int n,ans;cin >> n;ans=n;for(int i=2;i*i<=n;i++){if(n%i==0) {//原理:o(n)=n*(1-1/p1)+...+(1-1/pn)p1...pn表示为n的质因子.ans=ans/i*(i-1);//先除后乘,避免溢出。while(n%i==0){n/=i;}}}if(n>1)ans=ans/n*(n-1);cout << ans << endl ;}return 0;
}
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL;
const LL maxa=1e10+10;
LL euler_deall(LL n){LL res=n;for(LL i=2;i*i<=n;i++){if(n%i==0){res=res/i*(i-1);for(;n%i==0;n/=i);}}if(n!=1) res=res/n*(n-1);return res;
}
int main(){int t;scanf("%d",&t);while(t--){LL n;scanf("%lld",&n);printf("%lld\n",euler_deall(n)); }
}
互质数的个数(欧拉函数)C/C++相关推荐
- 欧拉函数|(扩展)欧拉定理|欧拉反演
也许更好的阅读体验 文章目录 欧拉函数 欧拉函数常用性质 欧拉定理 扩展欧拉定理 线性筛法 欧拉反演 欧拉函数 定义 欧拉函数是 小于等于 x的数中与x 互质 的数的 数目 符号 φ ( x ) \v ...
- 欧拉函数求互质数的个数
互质数的个数(一) 思路:欧拉函数. 题目链接 import java.util.Scanner;public class Main{public static void main(String[] ...
- 欧拉函数互质数的个数
学习的过程中学到了欧拉函数,做个总结,对数论,对正整数n,欧拉函数是小于或等于n的数中与n互质的数的数目,(φ(1)=1)例如φ(8)=4,因为1,3,5,7均和8互质. 互质数的个数 这里我们定义φ ...
- 1~n中与n互质数的个数(欧拉函数)
对于1~n中所有跟n互质的数的个数问题,我们会用欧拉函数来解决. 在开始讲欧拉函数之前,需要先了解质因数分解,传送门:http://t.csdn.cn/tqzvO.ok现在正式开始欧拉函数的推导. 以 ...
- 欧拉函数求互质数个数
求解与n(1-n-1)互质的质因子的个数 解析: 定义:对于正整数n,φ(n)是小于或等于n的正整数中,与n互质的数的数目. 例如:φ(8)=4,因为1,3,5,7均和8互质. 性质:1.若p是质数, ...
- 【数学专题】约数个数与欧拉函数
整理的算法模板合集: ACM模板 目录 一.约数个数 1. AcWing 1291. 轻拍牛头 2. AcWing 1294. 樱花 2.1 AcWing 197. 阶乘分解 3. AcWing 19 ...
- 欧拉函数(求与n互质的数的个数)
求解与n(1-n-1)互质的质因子的个数 解析:(转) 定义:对于正整数n,φ(n)是小于或等于n的正整数中,与n互质的数的数目. 例如:φ(8)=4,因为1,3,5,7均和8互质. 性质:1.若p是 ...
- 求互质数对的两种方法:欧拉函数和容斥原理
1.HDU4135 首先,我们可以先求出1 ~ a - 1内与n互质的数,再求出1 ~ b内与n互质的数.最后利用前缀和算出来即可. #include <iostream> #includ ...
- 欧拉函数:求小于等于n且与n互质的数的个数
求小于等于n且与n互质的数的个数 互质穷举法 互质:两个数互质代表两者最大公约数为1 最大公约数求法:辗转相除法,最小公倍数:较大值除以最大公约数乘以较小值 辗转相除法: 较大的数a取模较小的数b,得 ...
最新文章
- Springboot之YAML语法
- [shell] 一个printf 打印 8 进制码的问题
- SpringBoot整合Swagger测试api构建
- Flutter开发之ListView下拉刷新上拉加载更多(35)
- addcolumn---Grid---Magento
- qt log4qt 输出到oracle,Log4Qt 输出地
- 我的天,代码居然也需要保养?
- mysql php 时间比较大小_MySql中时间比较的实现
- gcc/g++/make/cmake/makefile/cmakelists的恩恩怨怨
- python以追加方式打开文件 线程安全吗_Python多线程同步---文件读写控制方法
- 热门好用的空号检测API推荐
- kali 最详细wifi抓包教程
- Redis(九)-Redis的常用数据类型之Hash表
- JAVA编程语言基础第六章
- 用c语言验证欧拉定理,欧拉定理_欧拉定理的意义
- java 网易的yeah邮箱_网易163邮箱、yeah邮箱横向对比
- JS--购物车二级联动
- 中国汽车氧传感器市场发展动态与前景研究建议报告2022-2028年
- HDU 5445:Food Problem
- 华为内部深度解读,关于5G发展的28个核心问题