zoukankan      html  css  js  c++  java
  • HDU 5430 Reflect

    题意:问在一个圆形的镜面里,从任意一点发出一个光源,经n次反射回到起点的情况数是多少。

    解法:直接贴题解吧……

    求1至N+1中与N+1互质的个数,即欧拉函数。

    代码:

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<string.h>
    #include<math.h>
    #include<limits.h>
    #include<time.h>
    #include<stdlib.h>
    #include<map>
    #include<queue>
    #include<set>
    #include<stack>
    #include<vector>
    #define LL long long
    
    using namespace std;
    
    int eular(int n)
    {
        int ret = 1;
        for(int i = 2; i * i <= n; i++)
        {
            if(n % i == 0)
            {
                n /= i;
                ret *= i - 1;
                while(n % i == 0)
                {
                    n /= i;
                    ret *= i;
                }
            }
        }
        if(n > 1)
            ret *= n - 1;
        return ret;
    }
    int main()
    {
        int T;
        while(~scanf("%d", &T))
        {
            while(T--)
            {
                int n;
                scanf("%d", &n);
                printf("%d
    ", eular(n + 1));
            }
        }
        return 0;
    }
    

      

  • 相关阅读:
    112. Path Sum
    66. Plus One
    258. Add Digits
    268. Missing Number
    275. H-Index II
    274. H-Index
    264. Ugly Number II
    263. Ugly Number
    199. Binary Tree Right Side View
    222. Count Complete Tree Nodes
  • 原文地址:https://www.cnblogs.com/Apro/p/4784988.html
Copyright © 2011-2022 走看看