博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【BZOJ4173】数学 欧拉函数神题
阅读量:5270 次
发布时间:2019-06-14

本文共 919 字,大约阅读时间需要 3 分钟。

【BZOJ4173】数学

Description

 

Input

 输入文件的第一行输入两个正整数 。 

Output

 如题

Sample Input

5 6

Sample Output

240

HINT

 N,M<=10^15

题解:STEP 1:

这步还是很容易的吧~毕竟原来的式子不太舒服。但是注意,最后一个式子的取值只能为0或1,所以就变成了。

STEP 2:

这步倒是难理解一些,但是考虑:我们将这三个等式都算出来,如果满足了左边那个条件,那么这三个等式加起来为1,对答案的贡献正好为$\varphi(k)$。否则,因为左边的式子不是0就是1,那么只能是0,这三个等式加起来对答案的贡献也就是0。

STEP 3:这三个式子长得差不多,我们只考虑一个

这步就显得比较套路了。我们强行给那个底式赋予实际意义,然后就转化成了简单的欧拉函数性质应用。三个式子都算完后,你发现结果正好是nm。那么最终的答案就是$\varphi(n)\varphi(m)nm$

#include 
#include
#include
using namespace std;typedef long long ll;const ll mod=998244353;typedef long long ll;ll n,m;ll phi(ll x){ ll ret=x,i; for(i=2;i*i<=x;i++) { if(x%i==0) { ret=ret/i*(i-1); while(x%i==0) x/=i; } } if(x!=1) ret=ret/x*(x-1); return ret%mod;}int main(){ scanf("%lld%lld",&n,&m); printf("%lld",phi(n)*phi(m)%mod*(n%mod)%mod*(m%mod)%mod); return 0;}

转载于:https://www.cnblogs.com/CQzhangyu/p/7189732.html

你可能感兴趣的文章
Flight学习(一)
查看>>
jQuery中的事件监听小记
查看>>
java实现精简版计算器
查看>>
受伤的总是我
查看>>
以太坊系列之一: 以太坊RLP用法-以太坊源码学习
查看>>
吐槽一下--最近多次在腾讯以及万科的面试经历---Web前端与PHP后端开发
查看>>
C# Socket学习笔记三
查看>>
接口自动化框架搭建(七)--数据驱动,关键字驱动
查看>>
CentOS搭建PHP服务器环境(LAMP)
查看>>
bootstrap学习11-进度条媒体对象和well组件
查看>>
对于正则化的理解
查看>>
C#与matlab参数调用(输出参数为两个不同类型的数组)
查看>>
PHP设计模式
查看>>
方法的动手动脑
查看>>
FineReport----日期处理
查看>>
IOS开发---菜鸟学习之路--(十二)-利用ASIHTTPRequest进行异步获取数据
查看>>
项目中遇到angular时间插件datetinepicker汉化问题
查看>>
设备管理
查看>>
CSS字体代码
查看>>
机器学习(周志华)——学习笔记1
查看>>