小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 ... 
随机推荐
- Flutter 轻量级的ToolTip控件
			轻提示的效果在应用中是少不了的,其实Flutter已经准备好了轻提示控件,这就是toolTip. 轻量级操作提示 其实Flutter中有很多提示控件,比如Dialog.Snackbar和BottomS ... 
- CentOS7.5安装GitLab及汉化
			一.GitLab英文版安装 1.下载gitlab安装包,然后安装 wget --content-disposition https://packages.gitlab.com/gitlab/gitla ... 
- Matlab求微分方程的符号解1
			一.常微分方程的求解 例1. 例2. 例3. 通常我们使用syms 和dsolve来求解: first: second:表示 third:如果有必要 功能函数diff可以完成一元或多元函数任意阶数的微 ... 
- thinkPHP5 类库包注册
			tp5的类库包注册分为自动注册和手动注册 自动注册 我们只需要把自己的类库包目录放入EXTEND_PATH目录(默认为extend,可配置),就可以自动注册对应的命名空间,例如: 我们在extend目 ... 
- NDK学习笔记-JNI多线程
			前面讲到记录到ffmpeg音视频解码的时候,采用的是在主线程中进行操作,这样是不行的,在学习了POSIX多线程操作以后,就可以实现其在子线程中解码了,也可以实现音视频同步了 简单示例 在native实 ... 
- poj2318(叉积判断点在直线左右+二分)
			题目链接:https://vjudge.net/problem/POJ-2318 题意:有n条线将矩形分成n+1块,m个点落在矩形内,求每一块点的个数. 思路: 最近开始肝计算几何,之前的几何题基本处 ... 
- SQL中的关键词
			AS的用法及妙用 https://www.cnblogs.com/zhaotiancheng/p/6692553.html 
- MySQL中的InnoDB中产生的死锁深究
			查考地址:https://blog.csdn.net/loophome/article/details/79867174 待研究中..... 
- 14.shell脚本学习
			简单的执行跟踪,会使得Shell显示每个被执行到的命令sh -x delete.sh 查找与替换grepsed -i "s/t_rs_customer/t_rs_customer_bak/g ... 
- Elastic Search快速上手(3):搜索
			前言 存储好数据之后,便可通过RESTful API进行搜索. 详细文档可参考: --简单搜索https://www.elastic.co/guide/cn/elasticsearch/guide/c ... 
