牛客训练:小a与黄金街道(欧拉函数+快速幂)
2024-09-30 09:35:23
题目链接:传送门
思路:欧拉函数的性质:前n个数的欧拉函数之和为φ(n)*n/2,由此求出结果。
参考文章:传送门
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long LL;
const LL MOD = 1e9+;
LL POW(LL a,LL b)
{
LL ans=;
while(b)
{
if(b%) ans=ans*a%MOD;
a=a*a%MOD;
b/=;
}
return ans;
}
LL Euler(LL x)
{
LL i,ans=x;
for(i=;i<=sqrt(x);i++)
{
if(x%i==)
{
ans=ans/i*(i-)%MOD;
while(x%i==) x/=i;
}
}
if(x>)
{
ans=ans/x*(x-)%MOD;
}
return ans;
}
int main(void)
{
LL n,k,A,B;
while(~scanf("%lld%lld%lld%lld",&n,&k,&A,&B))
{
LL ans=n*Euler(n)/; //注意:这里不能对MOD取余
ans=(A+B)%MOD*POW(k,ans)%MOD;
printf("%lld\n",ans);
}
return ;
}
最新文章
- 一起学微软Power BI系列-官方文档-入门指南(6)Power BI与Excel
- 学习PYTHON之路, DAY 4 - PYTHON 基础 4 (内置函数)
- python【1】-基础知识
- Javascript生成全局唯一标识符(GUID,UUID)的方法
- 错误:升级为xcode8之后无法上网的解决方法
- .NET 4.0中的泛型协变和反变
- VC GDI双缓冲机制绘图防屏幕闪烁实现步骤
- Spring boot(4)-应用打包部署
- 第六章 对象-javaScript权威指南第六版
- [JDBC] 实用性能提升
- ubuntu16.04 安装java
- Python编程练习:使用 turtle 库完成玫瑰花的绘制
- linux中的pwd
- 手动卸载CAD 删除残留文件 清理遗留的文件
- 【洛谷p1031】均分纸牌
- java基础-day11
- 如何简单区分Web前后端与MVC
- spring 和 spring boot 的区别
- CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑等
- arcgis server 无法手动删除切片