HDU 1286 找新朋友
2016-07-11 17:10
274 查看
Problem Description
新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋友,现在会长想知道究竟有几个新朋友?请你编程序帮会长计算出来。
【题目分析】
还是一道欧拉函数的裸题。预处理之后输出。1A
【代码】
新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋友,现在会长想知道究竟有几个新朋友?请你编程序帮会长计算出来。
【题目分析】
还是一道欧拉函数的裸题。预处理之后输出。1A
【代码】
#include <cstdio> long long n=40000,phi[40001],p[40001],top=0; bool ma[40001]; void init() { phi[1]=1; for (int i=2;i<=n;++i) { if (!ma[i]) ma[i]=true,p[++top]=i,phi[i]=i-1; for (int j=1;j<=top&&i*p[j]<=n;++j) { ma[i*p[j]]=true; if (i%p[j]==0){phi[i*p[j]]=phi[i]*p[j];break;} else phi[i*p[j]]=(p[j]-1)*phi[i]; } } } int main() { int l,r; init(); int T,k; scanf("%d",&T); while (T--) { scanf("%d",&k); printf("%d\n",phi[k]); } }
相关文章推荐
- 【HDU 5366】The mook jong 详解
- 【HDU 2136】Largest prime factor 详细图解
- 【HDU 1568】Fibonacci 数学公式 详解
- HDU 1568
- HDU1290
- HDU1568(Fobonacci公式)
- HDU ACM Step 2.2.2 Joseph(约瑟夫环问题)
- HDU 1405
- HDU 1297
- hdu 1205
- hdu 2087
- hdu 1016
- HDU 4898 The Revenge of the Princess’ Knight ( 2014 Multi-University Training Contest 4 )
- HDU 5592 ZYB's Premutation 线段树(查找动态区间第K大)
- HDU 5240 Exam (好水的题)
- HDU5237 Base64 大模拟
- HDU 1000
- HDU 1001
- HDU 1016 Prime Ring Problem
- HDU 1017 A Mathematical Curiosity