洛谷P1445:https://www.luogu.org/problemnew/show/P1445

推导过程

1/x+1/y=1/n!

设y=n!+k(k∈N)

1/x​+1/(n!+k)​=1/n!​

等式两边同乘x*n!*(n!+k)得 n!(n!+k)+xn!=x(n!+k)

移项得 n!(n!+k)=x(n!+k)−xn!=xk

x=n!(n!+k)​/k=(n!)2​/k+n!

因为x为正整数 所以(n!)2​/k+n!为正整数0.

因为n!为正整数 所以只要(n!)2​/k为正整数即可

因为k=y-n!   而y是可以取到任意正整数的,所以k也可以取到任意正整数,所以这道题就变成了求(n!)2的约数个数

思路

求约数个数 线筛的时候我们已经预处理出每个数的最小质因子 直接for一遍1−n 不断除以它的最小公约数 直到变成1为止 同时每次都使记录质因数的指数的数组++

这就完成了对每个数分解质因数最后把这些质因数的指数+1乘起来就行了 时间复杂度O(nlogn)

代码

#include<iostream>
#include<cstdio>
using namespace std;
#define Mod 1000000007
#define maxn 1000010
int n,ans=,cnt;
int p[maxn],c[maxn],v[maxn];
void primes(int x)
{
for(int i=;i<=x;i++)
{
if(!v[i])
{
v[i]=i;
p[++cnt]=i;
}
for(int j=;j<=cnt;j++)
{
if(p[j]>v[i]||p[j]*i>x) break;
v[p[j]*i]=p[j];
}
}
}
int main()
{
scanf("%d",&n);
primes(n);//质因数分解 处理出每个数的最小质因子
for(int i=;i<=n;i++)
for(int j=i;j!=;j/=v[j])
c[v[j]]++;//求质因数指数
for(int i=;i<=n;i++)
ans=(long long)ans*(c[i]*+)%Mod;
printf("%d",ans);
}

【题解】洛谷P1445 [Violet]樱花 (推导+约数和)的更多相关文章

  1. 洛谷P1445 [Violet] 樱花 (数学)

    洛谷P1445 [Violet] 樱花 题目背景 我很愤怒 题目描述 求方程 1/X+1/Y=1/(N!) 的正整数解的组数,其中N≤10^6. 解的组数,应模1e9+7. 输入输出格式 输入格式: ...

  2. 洛谷 P1445 [Violet]樱花

    #include<cstdio> #include<algorithm> #include<cstring> #include<vector> usin ...

  3. BZOJ2721或洛谷1445 [Violet]樱花

    BZOJ原题链接 洛谷原题链接 其实推导很简单,只不过我太菜了想不到...又双叒叕去看题解 简单写下推导过程. 原方程:\[\dfrac{1}{x} + \dfrac{1}{y} = \dfrac{1 ...

  4. bzoj2721 / P1445 [Violet]樱花

    P1445 [Violet]樱花 显然$x,y>n$ 那么我们可以设$a=n!,y=a+t(t>0)$ 再对原式通分一下$a(a+t)+ax=x(a+t)$ $a^{2}+at+ax=ax ...

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

    Luogu P1445[Violet]樱花/P4167 [Violet]樱花 真·双倍经验 化简原式: $$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$$ $$\frac ...

  6. 题解-洛谷P6788 「EZEC-3」四月樱花

    题面 洛谷P6788 「EZEC-3」四月樱花 给定 \(n,p\),求: \[ans=\left(\prod_{x=1}^n\prod_{y|x}\frac{y^{d(y)}}{\prod_{z|y ...

  7. 题解 洛谷P5018【对称二叉树】(noip2018T4)

    \(noip2018\) \(T4\)题解 其实呢,我是觉得这题比\(T3\)水到不知道哪里去了 毕竟我比较菜,不大会\(dp\) 好了开始讲正事 这题其实考察的其实就是选手对D(大)F(法)S(师) ...

  8. 题解 洛谷P2158 【[SDOI2008]仪仗队】

    本文搬自本人洛谷博客 题目 本文进行了一定的更新 优化了 Markdown 中 Latex 语句的运用,加强了可读性 补充了"我们仍不曾知晓得 消失的 性质5 ",加强了推导的严谨 ...

  9. 题解 洛谷 P3396 【哈希冲突】(根号分治)

    根号分治 前言 本题是一道讲解根号分治思想的论文题(然鹅我并没有找到论文),正 如论文中所说,根号算法--不仅是分块,根号分治利用的思想和分块像 似却又不同,某一篇洛谷日报中说过,分块算法实质上是一种 ...

随机推荐

  1. 初识backbone.js

    backbone,英文意思是:勇气, 脊骨,但是在程序里面,尤其是在backbone后面加上后缀js之后,它就变成了一个框架,一个js库. backbone.js,不知道作者是以什么样的目的来对其命名 ...

  2. 你还在把Java当成Android官方开发语言吗?Kotlin了解一下!

    导语:2017年Google IO大会宣布使用Kotlin作为Android的官方开发语言,相比较与典型的面相对象的JAVA语言,Kotlin作为一种新式的函数式编程语言,也有人称之为Android平 ...

  3. K&R C风格函数

    前些天在看getopt源码, 一种前所未见的函数定义方法 int getopt(nargc, nargv, ostr) int nargc; char * const nargv[]; const c ...

  4. Java流和文件

    File类:java.io包下与平台无关的文件和目录 java可以使用文件路径字符串来创建File实例,文件路径可以是绝对路径,也可以是相对路径,默认情况下,相对路径是依据用户工作路径,通常就是运行J ...

  5. node.js中的模板引擎jade、handlebars、ejs

    使用node.js的Express脚手架生成项目默认是jade模板引擎,jade引擎实在是太难用了,这么难用还敢设为默认的模板引擎,过分了啊!用handlebars模板引擎写还说的过去,但笔者更愿意使 ...

  6. typeScript入门(一)构建环境和数据类型

    最近入坑v-cli 3.0,发现ts越来越常用了,于是开始入坑学习. 1.构建ts环境 npm install -g typescript Mac和vscode用户可以用以下方式构建tsdemo项目 ...

  7. java常用API之DateFormat

    DateFormat 类: DateFormat 类是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间.日期/时间格式化子类(如 SimpleDateFormat类)允许进行格 ...

  8. js如何设置一个倒计时

    //申明一个定时器 let endInterval; //结束时间(毫秒数,这里是距离 1970 年 1 月 1 日至今的毫秒数) let endSeconds; //结束时间差 const ENDT ...

  9. css3 border-image及连续的图像边框

    border-image 它是下面几个值的简写: border-image-source // 使用绝对或相对地址url,引入图片 border-image-slice   //切割图片,取值支持:& ...

  10. Multidex (方法数超过限制的处理)

    报错 : Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536 ...