• 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;
    }
    

      

  • 相关阅读:
    基础操作
    需要注意
    简单操作
    git指令-版本回退
    设计模式-代理模式
    在idea下遇到的问题汇总
    maven笔记--持续更新
    poi简介
    Win10添加右键在此处打开命令行
    Ajax&Json案例
  • 原文地址:https://www.cnblogs.com/Apro/p/4784988.html
Copyright © 2020-2023  润新知