Chinaunix首页 | 论坛 | 博客
  • 博客访问: 36497
  • 博文数量: 13
  • 博客积分: 933
  • 博客等级: 军士长
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-11 21:01
文章分类

全部博文(13)

文章存档

2011年(1)

2010年(12)

最近访客

分类:

2010-03-13 20:16:00

//欧拉函数,会者不难,难者不会。
#include
#include
using namespace std;
int main()
{
 int n,ans;
 while(scanf("%d",&n),n != 0){
        if(n == 1){
            printf("0\n");  continue;
        }
        ans = n;
        for(int i = 2;i*i <= n;++i){
            if( n % i == 0 ){
                ans = ans - ans/i; 
                while(n%i == 0){
                    n /= i;   
                }
            }
        }
        if(n != 1)  ans = ans - ans / n;
        printf("%d\n",ans);
    }
 return 0;
}
阅读(645) | 评论(0) | 转发(0) |
0

上一篇:POJ 1061

下一篇:POJ 2388

给主人留下些什么吧!~~