题目背景

我很愤怒

题目描述

求方程 $\frac{1}{x}+\frac{1}{y}=\frac{1}{N!}$ 的正整数解的组数,其中$N≤10^6$。

解的组数,应模$1e9+7$。

输入输出格式

输入格式:

输入一个整数N

输出格式:

输出答案

输入输出样例

输入样例#1: 复制

1439
输出样例#1: 复制

102426508

题解

看到原题面的我也很愤怒。

显然是道数论题,所以我们要去分析它的性质。

$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$

$\frac{x+y}{x*y}=\frac{1}{n!}$

$xy-(x+y)*(n!)=0$

$(n!)^2+xy-(x+y)*n!=(n!)^2$

$(x-n!)*(y-n!)=(n!)^2$

设$t=(n!)$

$(x-t)*(y-t)=t^2$

∵$x,y$是正整数,∴$x-t>0$且$y-t>0$

(若要小于0,则$(x-t)$和$(y-t)$中至少要有一个小于$-t$,也就是$x<0$或$y<0$,与题设不符

设$A=(x-t)$,$B=(y-t)$

则有$A*B=t^2=(n!)^2$

所以$A$的方案数就是$(n!)^2$的因子数,也就是一些质因子乘起来的结果。

所以把$(n!)^2$分解质因数,设为$(n!)^2={a_1}^{p_1}*{a_2}^{p_2}...*{a_m}^{p_m}$

则答案为$(p_1+1)*(p_2+1)*...*(p_m+1)$。

  qwerta
P1445 [Violet]樱花 Accepted 代码 C++,.54KB
提交时间 -- ::
耗时/内存 86ms, 2692KB
#include<iostream>
#include<cstdio>
using namespace std;
bool sf[];
int p[];
int main()
{
int n;
scanf("%d",&n);
int tos=;
for(int i=;i<=n;++i)
if(!sf[i])
{
p[++tos]=;//因为是(n!)的平方,所以次数+=2
for(int j=;i*j<=n;++j)
{
int x=i*j;
sf[x]=;
while(x%i==)
{
p[tos]+=;
x/=i;
}
}
}
/*
for(int i=2;i<=n;++i)
{
int x=i;
for(int j=1;j<=tos&&x>1;++j)
{
while(x%st[j]==0)
{
p[j]+=2;
x/=st[j];
}
}
}
*/注释掉的是暴力分解2~n的质因数,亲测T上天
long long ans=,mod=1e9+;
for(int i=;i<=tos;++i)
ans=(ans*(p[i]+))%mod;//统计答案
cout<<ans;
return ;
}

最新文章

  1. (转)深入理解Java的接口和抽象类
  2. 如何给Ubuntu12.10 安装Vmware Tools
  3. pdsh使用
  4. Alpha版本发布说明
  5. 采用DOM进行表格的修改操作
  6. SVG 2D入门12 - SVG DOM
  7. UML中依赖(Dependency)和关联(Association)之间的区别
  8. Windows 10下Chrome不能启动的问题
  9. 设置UITableView背景透明/监听cell左边的删除按钮的点击事件
  10. CSS3 模拟笑脸
  11. python基础教程_学习笔记10:异常
  12. .NET MVC4 实训记录之一(引入Unity3.0 Ioc框架)
  13. hdu 5573Binary Tree
  14. asp.net MVC 的处理流程
  15. 窗体的Alpha通道透明色支持
  16. Eclipse的快捷键使用总结
  17. 如何学习、了解Kubernetes?
  18. MyBatis思维导图
  19. 类似于xml的一种数据传输格式protobuf
  20. connect-falsh的用法

热门文章

  1. iOS中UDP的使用
  2. 利用JS最真实的模拟鼠标点击
  3. List中remove元素的理解
  4. windows下如何快速优雅的使用python的科学计算库?
  5. onvif 开发之video streamer---onvif实现功能和经验
  6. android 导入项目 项目中文字乱码问题
  7. zookeeper启动流程简单梳理
  8. 1 zabbix3.2.4 安装
  9. python数据分析之Pandas:基本功能介绍
  10. tensorflow:typeerror:‘noneType’ object is not callable