poj2407 Relatives

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
__int64 oula(__int64 n)
{
    __int64 i;
    __int64 res=n;
    for(i=2;i<=n;i++)
    {
        if(n%i==0)
        {
            res=res*(i-1)/i;
        }
        while(n%i==0)
        {
            n/=i;
        }
    }
    return res;
}
int main()
{
    __int64 n;
    while(scanf("%I64d",&n),n)
    {
        printf("%I64d\n",oula(n));
    }
    return 0;
}

posted @ 2012-07-12 08:52  willzhang  阅读(82)  评论(0编辑  收藏  举报