题解 | #珂朵莉的数论题#

数学题

https://ac.nowcoder.com/acm/contest/26656/1019

// 与 1 互质的数有: 1
//    2          : 1
//    3          :  1  2
//    4          :  1  3
//    5          :  1  2  3  4
//    6          :  1  5
//    7          :  1  2  3  4  5  6  
//    8          :  1  3  5  7
//    9          :  1  2  4  5  7  8
//    20         :  1  3  7  9  11 13  17  19
//    50         :  1  3  7  9  11 13  17  19 21 23 27 29 31 33 37 39 41 43 47 49
//    惊奇的发现:与 n 互质的数的和为 phi(n)*n/2,(n>1),当 n = 1 时取1;
//    所以ans = (n+1)*n/2 - n * phi(n)/2;

#include<iostream>
#define int long long 
using namespace std;
const int p=1e9+7;
int phi(int x)
{
    int res=x;
    for(int i=2;i<=x/i;i++)
    {
        if(x%i==0)
        {
            res = res / i * (i-1);
            while(x%i==0) x/=i;
        }
    }
    if(x>1)res = res / x * (x-1);
    return res;
}

signed main()
{
    int n,ans,t;
    while(cin>>n)
    {
        ans =0;
        if(n==1)
        {
            cout<<0<<endl;
            continue;
        }
        t=phi(n);
        if(n%2==0)
        {
            ans = (n/2%p * ((n+1)%p))%p;
            ans %= p;
            ans -= ((n/2)%p * (t%p))%p;
            ans = (ans % p + p) % p;
        }
        else 
        {
            ans = (n%p * ((n+1)/2%p))%p;
            ans %= p;
            ans -= (n%p * (t/2%p))%p;
            ans = (ans % p + p) % p;
        }
        cout<<ans<<endl;
    }
}
全部评论

相关推荐

牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
评论
1
收藏
分享
正在热议
# 25届秋招总结 #
439565次浏览 4481人参与
# 春招别灰心,我们一人来一句鼓励 #
41297次浏览 523人参与
# 阿里云管培生offer #
119514次浏览 2219人参与
# 地方国企笔面经互助 #
7904次浏览 18人参与
# 虾皮求职进展汇总 #
113037次浏览 878人参与
# 实习,投递多份简历没人回复怎么办 #
2453508次浏览 34845人参与
# 北方华创开奖 #
107183次浏览 598人参与
# 实习必须要去大厂吗? #
55545次浏览 959人参与
# 同bg的你秋招战况如何? #
74881次浏览 544人参与
# 提前批简历挂麻了怎么办 #
149742次浏览 1975人参与
# 投递实习岗位前的准备 #
1195546次浏览 18545人参与
# 你投递的公司有几家约面了? #
33155次浏览 188人参与
# 双非本科求职如何逆袭 #
661700次浏览 7392人参与
# 机械人春招想让哪家公司来捞你? #
157576次浏览 2267人参与
# 如果公司给你放一天假,你会怎么度过? #
4705次浏览 53人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11170次浏览 252人参与
# 发工资后,你做的第一件事是什么 #
12320次浏览 60人参与
# 工作中,努力重要还是选择重要? #
35479次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20062次浏览 240人参与
# 实习想申请秋招offer,能不能argue薪资 #
39188次浏览 314人参与
# 我的上岸简历长这样 #
451841次浏览 8086人参与
# 非技术岗是怎么找实习的 #
155825次浏览 2120人参与
牛客网
牛客企业服务