.

样例输入复制

4 4

样例输出复制

14
#include<bits/stdc++.h>
using namespace std; typedef long long ll;
const ll MOD=1e9+7,inv2=500000004,inv6=166666668;
ll n,m;
const int maxn=100000;
ll A(ll x) {
x %= MOD;
return ((x * x) + x) % MOD;
} ll mul(ll a, ll b) {
a %= MOD, b %= MOD;
return (a *b) % MOD;
} ll kA(ll t,ll k) {
ll res= (t+k*t)%MOD;
res = (res*k)%MOD;
res = (res*inv2)%MOD;
ll h = (mul(mul(k,k+1),2*k+1)*inv6)%MOD;
h = (h*t)%MOD;
h = (h*t)%MOD;
res = (res+h)%MOD;
return res;
} ll a[maxn];
ll b[maxn]; void factor(ll n,ll &tot) {
ll temp,i,now;
temp=(ll)((double)sqrt(n)+1);
tot=0;
now=n;
for(i=2; i<=temp; ++i)if(now%i==0) {
a[++tot]=i;
b[tot]=0;
while(now%i==0) {
++b[tot];
now/=i;
}
}
if(now!=1) {
a[++tot]=now;
b[tot]=1;
}
} int main() {
while(scanf("%d%d",&n,&m)!=EOF) {
ll all;
factor(m,all);
ll g=0;
for(int i=1; i<(1<<all); i++) {
int cnt=0,t=1;
for(int j=0; j<all; j++) {
if((i>>j)&1) {
t*=a[j+1];
cnt++;
}
}
if(cnt&1) {
if(n/t==0||t>n) continue;
g = (g+kA(t,n/t))%MOD;
} else {
if(n/t==0||t>n) continue;
g = (g-kA(t,n/t)+MOD)%MOD;
}
}
ll ans=g;
ll other = (mul(n, n + 1)*inv2 + mul(mul(n,n+1),2*n+1)*inv6)%MOD;
ans = (other - ans + MOD)% MOD;
cout<<ans<<endl;
}
return 0;
}

ACM-ICPC 2018 沈阳赛区网络预赛 G Spare Tire (素因子分解+容斥)的更多相关文章

  1. ACM-ICPC 2018 沈阳赛区网络预赛 G Spare Tire(容斥)

    https://nanti.jisuanke.com/t/31448 题意 已知a序列,给你一个n和m求小于n与m互质的数作为a序列的下标的和 分析 打表发现ai=i*(i+1). 易得前n项和为 S ...

  2. ACM-ICPC 2018 沈阳赛区网络预赛 G. Spare Tire

    这题很好啊,好在我没做出来...大概分析了一下,题目大概意思就是求 问所有满足1<=i<=n且i与m互素的ai之和 最开始我们队的做法是类似线性筛的方法去筛所有数,把数筛出来后剩下数即可, ...

  3. ACM-ICPC 2018 沈阳赛区网络预赛 G. Spare Tire (容斥原理)

    可推出$a_n = n^2+n, $ 设\(S_n = \sum_{i=1}^{n} a_i\) 则 \(S_n = \frac{n(n+1)(2n+1)}{6} + \frac{n(n+1)}{2} ...

  4. ACM-ICPC 2018 沈阳赛区网络预赛 G 容斥原理

    https://nanti.jisuanke.com/t/31448 解析 易得an=n*n+n O(1)得到前n项和  再删除与m不互素的数  我们用欧拉函数求出m的质因数  枚举其集合的子集 进行 ...

  5. 【ACM-ICPC 2018 沈阳赛区网络预赛 G】Spare Tire

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 让你求出1..n中和m互质的位置i. 让你输出∑ai 这个ai可以oeis一波. 发现是ai = i(i+1) 1..n中和m互质的 ...

  6. ACM-ICPC 2018 沈阳赛区网络预赛 J树分块

    J. Ka Chang Given a rooted tree ( the root is node 11 ) of NN nodes. Initially, each node has zero p ...

  7. ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心)

    ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心) Trace 问答问题反馈 只看题面 35.78% 1000ms 262144K There's a beach in t ...

  8. ACM-ICPC 2018 沈阳赛区网络预赛 K Supreme Number(规律)

    https://nanti.jisuanke.com/t/31452 题意 给出一个n (2 ≤ N ≤ 10100 ),找到最接近且小于n的一个数,这个数需要满足每位上的数字构成的集合的每个非空子集 ...

  9. ACM-ICPC 2018 沈阳赛区网络预赛-K:Supreme Number

    Supreme Number A prime number (or a prime) is a natural number greater than 11 that cannot be formed ...

随机推荐

  1. 利用requests提交相同名称数据的处理方法

    #字典键不能重复 data={ boardid' : boardid, 'divids[ ]' : '0' , 'divids[ ]' : '1' , 'divids[ ]' : '2' , } #这 ...

  2. P3748 [六省联考2017]摧毁“树状图”

    传送门 显然是可以树形 $dp$ 的 对每个节点维护以下 $5$ 个东西 $1.$ 从当前节点出发往下的链的最大贡献 $2.$ 节点子树内不经过本身的路径最大贡献 $3.$ 节点子树内经过本身的路径的 ...

  3. LinqToSQL3

    Lambda Lambda表达式和匿名方法很相似,但Lambda表达式比匿名方法更灵活,并且语法比匿名方法更简洁. 在LINQ中可以使用Lambda表达式创建委托,这些委托将稍后执行查询时被调用. L ...

  4. c++ 使用 gsoap 调用 WebService 中文乱码

    c++ 使用 gsoap 调用  WebService 中文乱码   问题产生: 使用gsoap时,如果WebService服务端及客户调用端都使用 C++ , 再传递中文时不会存在乱码问题, 当客户 ...

  5. LeetCode:183.从不订购的客户

    题目链接:https://leetcode-cn.com/problems/customers-who-never-order/ 题目 某网站包含两个表 Customers 表和 Orders 表.编 ...

  6. spring配置文件定时器

    在实际工作中,经常需要使用到定时任务,很多地方都会需要这种功能,比如做数据备份.同步等操作. 今天终于抽出时间总结了一下,写一个小例子: 基本使用: spring的定时任务使用起来十分方便,只需要两步 ...

  7. 不错的abap技术网站

    http://www.saptechnical.com/index.htm https://sapcodes.com/

  8. hourglassnet网络解析

    hourglassnet中文名称是沙漏网络,起初用于人体关键点检测,代码,https://github.com/bearpaw/pytorch-pose 后来被广泛的应用到其他领域,我知道的有双目深度 ...

  9. 记录-Intellij Idea下以Tomcat运行Web项目时的位置问题

    今天本来准备把原来的一个Web项目导入到Idea下,之前这个项目是用eclipse写的,容器用的tomcat,首先导入前我把一些没用的配置文件都给删了,像什么.eclipse..setting什么的, ...

  10. beego注解路由的格式

    原文: https://blog.csdn.net/weixin_33743880/article/details/88016192 beego注解路由的注释,我们可以把我们的注释分为以下类别: @T ...