codevs 4939 欧拉函数

Posted 小时のblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codevs 4939 欧拉函数相关的知识,希望对你有一定的参考价值。

传送门

4939 欧拉函数

 时间限制: 1 s
 空间限制: 1000 KB
 题目等级 : 钻石 Diamon
 
 
题目描述 Description

输入一个数n,输出小于n且与n互素的整数个数

输入描述 Input Description

包含多组数据,n=0时结束

测试数据组数不会很多,不必先打表后输出

输出描述 Output Description

一组数据一行

样例输入 Sample Input

364684

346

5432

11

24

0

2333333

233333333

0

233333333333333

2333333333333333333333333333333333333333333333333

 

样例输出 Sample Output

165120

172

2304

10

8

数据范围及提示 Data Size & Hint

1<n<9223372036854775807

【code】

搬来了几个模板

#include<cstdio>
using namespace std;
long long n,ans;
int main()
{
    while(1)
    {
        scanf("%lld",&n);
        if(!n) break;
        ans=n;
        for(long long i=2;i*i<=n;i++)
         if(n%i==0)
         {
             while(n%i==0) n/=i;
             ans=ans/i*(i-1);
         }
        if(n>1) ans=ans/n*(n-1);
        printf("%lld\n",ans);
    }
}
#include<cstdio>
using namespace std;
int main()
{
    long long n,ans;
    while(1)
    {
        scanf("%lld",&n);
        if(!n) return 0;
        ans=n;
        if(n%2==0)
        {
            while(n%2==0) n/=2;
            ans=ans/2;
        }
        for(long long i=3;i*i<=n;i+=2)
           if(n%i==0)
            {
                while(n%i==0) n/=i;
                ans=ans/i*(i-1);
            }
        if(n>1) ans=ans/n*(n-1);
        printf("%lld\n",ans);
    }
}

 

以上是关于codevs 4939 欧拉函数的主要内容,如果未能解决你的问题,请参考以下文章

欧拉函数知识点总结及代码模板及欧拉函数表

欧拉函数及代码实现

欧拉Euler函数

HDU 2588 GCD(欧拉函数)

蓝桥杯必备算法一:欧拉函数

数论之旅4---欧拉函数的证明及代码实现(我会证明都是骗人的╮( ̄▽ ̄)╭)