小A的数学题
小A最近开始研究数论题了,这一次他随手写出来一个式子,
但是他发现他并不太会计算这个式子,你可以告诉他这个结果吗,答案可能会比较大,请模上1000000007。
输入描述:
一行两个正整数n,m一行两个正整数n,m一行两个正整数n,m
输出描述:
一行一个整数表示输出结果一行一个整数表示输出结果一行一个整数表示输出结果
备注1≤n,m≤1e61 \leq n,m \leq 1e61≤n题意:给定两个数,n,m;求(1~n)(1~m)的 gcd(i,j)平方和
思路:简单暴力肯定超时,
看两个数的最大公约数,我们反过来求,从min(n,m)最大的可能公约数开始逐级递减
从min(n,m)~1
令 p = min(n,m),
那么在n里面p的倍数有n/p个,即有n/p个数存在p这个约数
对于m而言也一样;
之后再从 p*2开始将所有p的倍数再减掉,剩下的就是约数最大为p的个数,即对于n,m而言就是gcd(n,m)==p的所有组合为(n/p)*(m/p); 例子
n = 9, m= 7;
p = 7;
gcd(i,j) == 7;
f[7] = 1;
gcd(i,j)=6;
f[6]=1;
gcd(i,j) = 5;
f[5]=5;
gcd(i,j)=4;
f[4]=2;
gcd(i,j)=3;
f[3]=5;
gcd(i,j)=2;
f[2]=9;
f[1]=44;
#include <bits/stdc++.h> using namespace std;
typedef long long ll;
const int N = 1e6+;
#define mod 1000000007
ll n,m;
ll num;
ll f[N];
int main()
{
scanf("%lld%lld",&n,&m);
for(int i = min(n,m); i >=;i--)
{
f[i] = (n / i) * (m / i);
for(int j = * i; j <= min(n , m); j += i)
{
f[i] -= f[j];
}
//cout << f[i]<<' '<<i<<endl;
num = (num + f[i] * i % mod * i % mod )%mod;
}
cout << num <<endl;
return ;
}
小A的数学题的更多相关文章
- 牛客小白月赛13-J小A的数学题 (莫比乌斯反演)
链接:https://ac.nowcoder.com/acm/contest/549/J来源:牛客网 题目描述 小A最近开始研究数论题了,这一次他随手写出来一个式子,∑ni=1∑mj=1gcd(i,j ...
- JZOJ 5773. 【NOIP2008模拟】简单数学题
5773. [NOIP2008模拟]简单数学题 (File IO): input:math.in output:math.out Time Limits: 1000 ms Memory Limits ...
- [JZOJ5773]【NOIP2008模拟】简单数学题
Description 话说, 小X是个数学大佬,他喜欢做数学题.有一天,小X想考一考小Y.他问了小Y一道数学题.题目如下: 对于一个正整数N,存在一个正整数T(0<T&l ...
- 结对编程——带UI的小初高数学学习软件
一.简介 本次项目要求: 1.所有功能通过图形化界面操作,可以是桌面应用,可以是网站(编程语言和技术不限): 2.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: ...
- 纪中2018暑假培训day3提高a组改题记录(混有部分b组)
day3 模拟赛,看了看a组题,发现是博弈论,非常开心(因为好玩),于是做的a组.结果差点爆零,死命纠结t1的sg函数,但其实只是一个dp,不用扯到sg函数的那种. t1: Description 被 ...
- CSP-J/S 2021 游记
\(\large\texttt{Day -1}\) 晚上好累啊,去集训了,回来之后发现十一点了还码了一会儿,只能祈求上帝明天不会打瞌睡. \(\large\texttt{Day 0}\) 意料中的事情 ...
- Miller Rabin 详解 && 小清新数学题题解
在做这道题之前,我们首先来尝试签到题. 签到题 我们定义一个函数:\(qiandao(x)\) 为小于等于 x 的数中与 x 不互质的数的个数.要求 \(\sum\limits _{i=l}^r qi ...
- HihoCoder1655 : 第K小最简真分数([Offer收割]编程练习赛39)(唯一分解+容斥定理+二分)(不错的数学题)
描述 给一个整数N,请你求出以N为分母的最简(既约)真分数中第K小的是多少? 输入 两个整数N个K. 对于30%的数据,1 <= N <= 1000000 对于100%的数据,1 < ...
- codeforces 888A/B/C/D/E - [数学题の小合集]
这次CF不是很难,我这种弱鸡都能在半个小时内连A四道……不过E题没想到还有这种折半+状压枚举+二分的骚操作,后面就挂G了…… A.Local Extrema 题目链接:https://cn.vjudg ...
随机推荐
- 【VS开发】Return与Exit的区别
1. exit用于结束正在运行的整个程序,它将参数返回给OS,把控制权交给操作系统:而return 是退出当前函数,返回函数值,把控制权交给调用函数. 2. exit是系统调用级别,它表示一个进程的结 ...
- Bootstrap 表单示例
1.打开https://getbootstrap.com/docs/4.3/examples/checkout/复制表单源码 2.清空main标签内容 3.粘贴表单源码 4.示例图
- gradle中 使用lombok
plugins { id 'java' id "io.franzbecker.gradle-lombok" version "3.1.0" ...
- lua语法介绍(二)
一.语法简要 在学习任何语法之前,我们都需要知道该门语言是怎样定义的,是怎样运行的,话说白了,就是到了人家的山头得唱人家山头的歌.下面介绍lua的语法 1.变量的定义 特点: 1.变量在使用前必须声明 ...
- SQL SERVER 字符串函数 REPLACE()
定义: REPLACE()返回用另一个字符串值替换原字符串中出现的所有指定字符串值之后的字符串. 语法: REPLACE ( string_expression , string_pattern , ...
- Django 用Session和Cookie分别实现记住用户登录状态
简介 由于http协议的请求是无状态的.故为了让用户在浏览器中再次访问该服务端时,他的登录状态能够保留(也可翻译为该用户访问这个服务端其他网页时不需再重复进行用户认证).我们可以采用Cookie或Se ...
- IDEA操作之test case coverage的方法
作用: 用于自动化测试,检查单元测试的覆盖率情况. 安装: 1.点击 Run * with coverage 或者右键已经定义为test source的package选择(单个test class同 ...
- 【AtCoder】AGC002
AGC002 A - Range Product #include <bits/stdc++.h> #define fi first #define se second #define p ...
- Mybatis Plus带多条件的多表联合、分页、排序查询
目录 一.现有表 student学生表: facultylist学院表: 二.同时满足以下需求: 1.多表联合查询出学院名字 2.可以带多条件查询 3.指定页码,页数据大小进行物理分页查询 三.解决步 ...
- 【Python基础】14_Python中的TODO注释
# TODO XXX... IDE中右键左下角,可显示当前项目所有的TODO