zoukankan      html  css  js  c++  java
  • acwing 873. 欧拉函数 模板

    地址 https://www.acwing.com/problem/content/875/

    给定n个正整数ai,请你求出每个数的欧拉函数。
    
    欧拉函数的定义
    
    输入格式
    第一行包含整数n。
    
    接下来n行,每行包含一个正整数ai。
    
    输出格式
    输出共n行,每行输出一个正整数ai的欧拉函数。
    
    数据范围
    1≤n≤100,
    1≤ai≤2109
    输入样例:
    3
    3
    6
    8
    输出样例:
    2
    2
    4

    题解

    模板题  根据公式可得代码中注释部分的代码  然后避免出现分数 调整了计算次序 并做了一些通分 方便计算

    #include <iostream>
    
    using namespace std;
    
    
    int phi(int x)
    {
        int res = x;
        for (int i = 2; i <= x / i; i ++ )
            if (x % i == 0)
            {
                res =  res*(1-1/i); // =  res*((i-1)/i) = res/i*(i-1)
                //res = res / i * (i - 1);  //最终结果
                while (x % i == 0) x /= i;
            }
        if (x > 1) res = res / x * (x - 1);
    
        return res;
    }
    
    
    int main()
    {
        int n;
        cin >> n;
        while (n -- )
        {
            int x;
            cin >> x;
            cout << phi(x) << endl;
        }
    
        return 0;
    }
        
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    Activity相关知识点总结
    大端和小端
    两年前端感悟
    线性结构与树形结构相互转换(ES6实现)
    基于webpack的React项目搭建(三)
    MySQL安装之yum安装
    EL表达式中fn函数
    配置Log4j 详解
    Canvas学习:封装Canvas绘制基本图形API
    canvas
  • 原文地址:https://www.cnblogs.com/itdef/p/12007014.html
Copyright © 2011-2022 走看看