Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux编程 > » 正文

HDOJ 1286 找新朋友 解题报告

来源: 未知 分享至:

http://acm.hdu.edu.cn/showproblem.php?pid=1286

欧拉函数:数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8互质。

       

Run ID Submit Time Judge Status Pro.ID Exe.Time Exe.Memory Code Len. Language Author
4317721 2011-08-02 23:18:12 Accepted 1286 0MS 288K 669 B G++ GongZi
//HDOJ 1286 Code By NetBeans 6.9.1
#include <iostream>

using namespace std;

int euler( int x );

int main( )
{
int CN;
cin
>> CN;
while( CN-- )
{
int N;
cin
>> N;
cout
<< euler( N ) << endl;
}
return 0;
}

int euler( int x )
{
int result = x;
for( int i = 2; i * i <= x; ++i )
{
if( x % i == 0 )
{
result
= result * ( i - 1 ) / i;
while( x % i == 0 )
{
x
/= i;
}
}
}
if( x > 1 )
{
result
= result * ( x - 1 ) / x;
}
return result;
}
#if gongzi
#endif

  

欧拉函数还可以写成这样:

int euler( int x )
{
int result = 1;
for( int i = 2; i * i <= x; ++i )
{
if( x % i == 0 )
{
x
/= i;
result
*= i - 1;
while( x % i == 0 )
{
x
/= i;
result
*= i;
}
}
}
if( x > 1 )
{
result
*= x - 1;
}
return result;
}

  


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史