LightOJ - 1370 Bi-shoe and Phi-shoe(欧拉函数)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LightOJ - 1370 Bi-shoe and Phi-shoe(欧拉函数)相关的知识,希望对你有一定的参考价值。
题目链接:http://lightoj.com/volume_showproblem.php?problem=1370
题意:在数论,对正整数n,欧拉函数是小于n的正整数中与n互的数的数目(φ(1)=1)
题解:
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <algorithm> 5 using namespace std; 6 7 const int N=1111111; 8 int phi[N],cost[N]; 9 typedef long long LL; 10 11 void init(){ 12 //欧拉函数打表 13 memset(phi,0,sizeof(phi)); 14 memset(cost,0,sizeof(cost)); 15 for(int i=2;i<=N;i++){ 16 if(phi[i]) continue; 17 for(int j=i;j<=N;j+=i){ 18 if(!phi[j]) phi[j]=j; 19 phi[j]=phi[j]/i*(i-1); 20 } 21 } 22 //枚举花费 23 for(int i=1;i<=N;i++){ 24 for(int j=phi[i];j>=1;j--){ 25 if(cost[j]) break; 26 cost[j]=i; 27 } 28 } 29 } 30 31 int main(){ 32 init(); 33 int t,n,tmp; 34 scanf("%d",&t); 35 for(int i=1;i<=t;i++){ 36 LL ans=0; 37 scanf("%d",&n); 38 for(int j=1;j<=n;j++){ 39 scanf("%d",&tmp); 40 ans+=cost[tmp]; 41 } 42 printf("Case %d: %lld Xukha\n",i,ans); 43 } 44 return 0; 45 }
以上是关于LightOJ - 1370 Bi-shoe and Phi-shoe(欧拉函数)的主要内容,如果未能解决你的问题,请参考以下文章
LightOJ - 1370 Bi-shoe and Phi-shoe(欧拉函数)
LightOJ - 1370 Bi-shoe and Phi-shoe
LightOJ - 1370 Bi-shoe and Phi-shoe 欧拉函数 题解
Lightoj1370 Bi-shoe and Phi-shoe