Luogu P1445[Violet]樱花/P4167 [Violet]樱花

真·双倍经验

化简原式:

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

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

$$xy=n!(x+y)$$

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

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

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

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

所以$(x-n!)$就是$(n!)^2$的一个因子。

又因为$(x-n!)$的数量和$x$相等,那么解的个数就是$(n!)^2$的因数个数。

#include<bits/stdc++.h>
#define N 1000010
#define MOD 1000000007 using namespace std; int n,cnt;
int pri[N];
long long ans=1;
bool vis[N]; void Read() {
scanf("%d",&n);
return;
} void EulerSieve(int x) {
for(int i=2;i<=x;i++) {
if(!vis[i]) {
pri[++cnt]=i;
}
for(int j=1;j<=cnt;j++) {
if(i*pri[j]>x) {
break;
}
else {
vis[i*pri[j]]=1;
}
if(!(i%pri[j])) {
break;
}
}
}
return;
} int Factor(int k,int p) {
if(k<p) {
return 0;
}
else {
return k/p+Factor(k/p,p);
}
} void Solve() {
for(int i=1;i<=cnt;i++) {
ans*=Factor(n,pri[i])*2+1;
ans%=MOD;
}
printf("%lld",ans);
return;
} int main()
{
Read();
EulerSieve(n);
Solve();
return 0;
}

Luogu P1445[Violet]樱花/P4167 [Violet]樱花的更多相关文章

  1. 【洛谷】P4167 [Violet]樱花

    题面 又懒得弄题面,开个传送门吧 分析 人生第一次切数学题,我们先把方程写出来 $$\frac {1}{x}+\frac {1}{y}=\frac {1}{n!}$$ 现在我们知道的条件是x,y都是正 ...

  2. luogu P1445 [Violet]嘤F♂A

    博主决定更博文啦 这道题一开始没什么思路啊qwq 要求 \(\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}\) 的正整数解总数 首先通分,得 \[\frac{x+y}{xy} ...

  3. 让 Terminal/vim 使用 Solarized 配色

    经过亲身体验,终于使用上了solarized的配色,之前配出来相差太多,于是找到这篇参考博文:http://blog.csdn.net/angle_birds/article/details/1169 ...

  4. 160908、前端开发框架Semantic UI

    简介 网页开发中,CSS控制网页样式.作为测试开发工程师,我个人不太擅长手写CSS.样式微调.兼容浏览器等工作,所以我选择使用成熟的前端框架,可以快速开发出样式美观的网站,也解决了大部分浏览器兼容问题 ...

  5. 1352 - Colored Cubes (枚举方法)

    There are several colored cubes. All of them are of the same size but they may be colored differentl ...

  6. POI--帮助文档

    1.创建工作簿 (WORKBOOK) HSSFWorkbook wb = new HSSFWorkbook(); FileOutputStream fileOut = new FileOutputSt ...

  7. jQuery Dom对象操作 增、删、改、复制、包裹

    1. 增(插入) 内部插入 //向每个匹配的元素内部追加内容,为最后一个子元素$('.violet').append('<div></div>'); //把所有匹配的元素追加到 ...

  8. POI3的资料整理

    转自http://aman.cao.blog.163.com/blog/static/32951336201010823557408/ POI3的资料整理一.POI简介 Jakarta POI 是ap ...

  9. POJ2741 Colored Cubes

    Description There are several colored cubes. All of them are of the same size but they may be colore ...

随机推荐

  1. Gitlab提交时间错误问题修复

    gitlab-ctl status gitlab提交时间显示错误,明明是近期修改提交的代码在页面显示的时间是19年前 查看配置文件 /etc/gitlab/gitlab.rb 时区设置正确,再说就算是 ...

  2. 推荐两本CCF教材

    希望学习电脑程序设计的同学,可以购买如下两本教材,先学习入门篇,再学习基础篇.淘宝.当当.京东均有售.建议选择比较靠谱的网店,避免买到盗版书.

  3. python 调 java(胶水就是胶水)

    java门外汉用python调java, 一.安装java环境(linux) 1.首先要去下载好JDK,Java SE 8的官方网址是http://www.oracle.com/technetwork ...

  4. 微信浏览器内建的WeixinJSBridge 实现“返回”操作

    微信浏览器内建的WeixinJSBridge 实现“返回”操作 WeixinJSBridge.call('closeWindow');

  5. 第07组 Alpha冲刺(3/4)

    队名:秃头小队 组长博客 作业博客 组长徐俊杰 过去两天完成的任务:完成人员分配,初步学习Android开发 Github签入记录 接下来的计划:继续完成Android开发的学习,带领团队进行前后端开 ...

  6. layer.prompt添加多个输入框

    原文链接:https://www.jianshu.com/p/65fea33e6750 我们都知道layer.prompt官网上的例子是一个弹出框,那么有没有可能出来多个呢,当然是可以的 1.首先增加 ...

  7. java学习笔记(6)-多线程(1)

    标签(空格分隔): 笔记 一.基本概念 1.1 程序.进程.线程 程序(program):是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码,静态对象. 进程(process):是程 ...

  8. django使用pyecharts(2)----django加入echarts_前后台分离

    二.Django 中使用 pyecharts. 前后端分离 1.安装 djangorestframework linux pip3 install djangorestframework window ...

  9. Scratch编程:画多边形(八)

    “ 上节课的内容全部掌握了吗?反复练习了没有,编程最好的学习方法就是练习.练习.再练习.一定要记得多动手.多动脑筋哦~~” 01 — 游戏介绍 这节我们将实现:程序提示用户输入数据,然后根据用户的输入 ...

  10. Harbor 批量清理历史镜像

    公司 Harbor 仓库一年多没清理,硬盘被堆满了,为此写了个批量清除的 Python 脚本. 源代码见 github-harbor_clean.py # coding: utf-8 from ope ...