CodeForces 776E 数学规律,欧拉
Posted 掉血菜鸡煮熟中
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeForces 776E 数学规律,欧拉相关的知识,希望对你有一定的参考价值。
题意:定义f(n)为(x,y)的对数,x和y要满足 x>0, y>0, x+y=n, x与y互质。 定义g(n)为f(x1)+f(x2)+......+f(xk),xi为n的因子。
再定义Fk(n)为 给定n和k,求Fk(n)。
tags: 好假的题。。推理或者找规律,f(n)=phi(n), g(n)=n。。。
#include<bits/stdc++.h> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") #define rep(i,a,b) for (int i=a;i<=b;i++) #define per(i,b,a) for (int i=b;i>=a;i--) #define mes(a,b) memset(a,b,sizeof(a)) #define INF 0x3f3f3f3f #define MP make_pair #define PB push_back #define fi first #define se second typedef long long ll; const int N = 200005, mod = 1000000007; ll n, k; ll phi(ll n) { ll ans=n; for(ll i=2; i*i<=n; ++i) if(n%i==0) { ans= ans/i*(i-1); while(n%i==0) n/=i; } if(n>1) ans= ans/n*(n-1); return ans; } int main() { scanf("%lld %lld", &n, &k); ll cnt=0; while(n!=1 && cnt<(k+1)/2) { ++cnt, n=phi(n); } printf("%lld\n", (n+mod)%mod); return 0; }
以上是关于CodeForces 776E 数学规律,欧拉的主要内容,如果未能解决你的问题,请参考以下文章
Really Big Numbers CodeForces - 817C (数学规律+二分)
Codeforces 626C Block Towers「贪心」「二分」「数学规律」
codeforces round#524 D - Olya and magical square /// 大概算是数学规律题?