• POJ 2407 Relatives 欧拉函数题解


    版权声明:本文作者靖心,靖空间地址:http://blog.csdn.net/kenden23/,未经本作者同意不得转载。

    https://blog.csdn.net/kenden23/article/details/35774889

    最主要的欧拉函数:

    欧拉函数:求小于n的与n互质的个数  
    欧兰函数公式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),当中p1, p2……pn为x的全部质因数  

    就是要求这种式子啦,只是求这条式子。相信有非常多种方法能够求,这个不是难题;

    只是问题是怎样巧妙地求,怎样简洁地写出代码。

    直接硬求,或者求出质因数之后求都不是巧妙的方法了。參考了下别人的代码才知道能够写的这么巧妙的。

    以下程序能够说是连消带打地求式子结果。分解质因子。能够如此简明地把解题思想转化为计算机程序思维,然后转化为代码,这就是高手的境地:

    #include <stdio.h>
    
    unsigned eulerFunc(unsigned n)
    {
    	unsigned ans = 1;
    	for (unsigned i = 2; i*i <= n; i++)
    	{
    		if (n % i == 0)
    		{
    			n /= i, ans *= (i-1);
    			while (n % i == 0) n /= i, ans *= i;//把质数除去,巧妙变相分解质因子
    		}		
    	}
    	if (n > 1) ans *= (n-1);
    	return ans;
    }
    
    int main()
    {
    	int n;
    	while (scanf("%d", &n) && n !=0)
    	{
    		printf("%d
    ", eulerFunc(n));
    	}
    	return 0;
    }


  • 相关阅读:
    IE 兼容问题笔记
    php编码与解码
    php 一些神奇加有趣的函数
    RESTful 规范
    关于CSS3背景渐变色无效问题
    ECShop
    php中的PHP_EOL换行符
    用 openSSL 生成 公钥 私钥
    app调用支付宝支付 笔记
    utf8 文件 错误保存为gbk 中文乱码 解决方法
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10557803.html
Copyright © 2020-2023  润新知