[HDU1787]GCD Again(根n求phi)

来源:互联网 发布:淘宝达人在哪里找 编辑:程序博客网 时间:2024/05/20 11:24

题目描述

传送门
有超过108的数据,开LL

题解

根n求phi
运用公式:

ϕ(n)=n(11p1)(11p2)(11pn)

代码

#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define LL long longLL T,n,ans;inline LL phi(LL x){    LL ans=x;    for (LL i=2;i*i<=x;++i)      if (x%i==0){        ans=ans*(i-1)/i;        while (x%i==0) x/=i;      }    if (x>1) ans=ans*(x-1)/x;    return ans;}int main(){    while (~scanf("%lld",&n)){        if (!n) break;        ans=n-1-phi(n);        printf("%lld\n",ans);    }}
0 0
原创粉丝点击