博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeforces776E
阅读量:5291 次
发布时间:2019-06-14

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

这题看着很唬人,但实际上是道水题...

f[n]通过打表或证明,可以发现就是欧拉函数,g[n]恒等于n,所以题目的意思就是让你求n的k次欧拉函数。

可以发现实际上k次欧拉函数,n的数值减小得很快,所以直接暴力即可。

code:真的暴力

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define LL long long#define FILE "dealing"#define up(i,j,n) for(LL i=j;i<=n;i++)LL read(){ LL x=0,f=1,ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9')x=(x<<1)+(x<<3)+ch-'0',ch=getchar(); return x*f;}const LL maxn=1600000,mod=1000000007,inf=1000000000;bool cmin(LL& a,LL b){return a>b?a=b,true:false;}bool cmax(LL& a,LL b){return a
>=1)if(b&1)ans*=a;return ans;}LL qiuoula(LL n){ LL m=(LL)sqrt(n*1.0+1),sum=1; cnt=0; up(i,2,m){ if(n==1)break; while(n%i==0){ n/=i; if(c[cnt]==i)r[cnt]++; else c[++cnt]=i,r[cnt]=1; } if(c[cnt]==i) sum*=(mul(c[cnt],r[cnt])-mul(c[cnt],r[cnt]-1)); } if(n>1)sum*=(n-1); return sum; }int main(){ //freopen(FILE".in","r",stdin); //freopen(FILE".out","w",stdout); LL n=read(),m=(read()+1)/2; up(i,1,m){ n=qiuoula(n); if(n==1)break; } cout<
<

  

转载于:https://www.cnblogs.com/chadinblog/p/6437646.html

你可能感兴趣的文章
P2028 龙兄摘苹果
查看>>
P2880 [USACO07JAN]平衡的阵容Balanced Lineup
查看>>
P1970 花匠
查看>>
P1586 四方定理
查看>>
P1969 积木大赛
查看>>
P1965 转圈游戏
查看>>
#557. 蒟蒻KC的垃圾数列
查看>>
P2197 【模板】nim游戏
查看>>
P2678 跳石头
查看>>
P1969 积木大赛
查看>>
P1125 笨小猴
查看>>
#548. 数学
查看>>
P1311 选择客栈
查看>>
P2822 组合数问题
查看>>
P1385 密令
查看>>
U65320 Oak的预算方案
查看>>
P1064 金明的预算方案
查看>>
P2902 [USACO08MAR]珍珠配对Pearl Pairing
查看>>
P1852 [国家集训队]跳跳棋
查看>>
P1318 积水面积
查看>>