【题解】洛谷P1445 [Violet]樱花 (推导+约数和)
洛谷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]樱花 (推导+约数和)的更多相关文章
- 洛谷P1445 [Violet] 樱花 (数学)
洛谷P1445 [Violet] 樱花 题目背景 我很愤怒 题目描述 求方程 1/X+1/Y=1/(N!) 的正整数解的组数,其中N≤10^6. 解的组数,应模1e9+7. 输入输出格式 输入格式: ...
- 洛谷 P1445 [Violet]樱花
#include<cstdio> #include<algorithm> #include<cstring> #include<vector> usin ...
- BZOJ2721或洛谷1445 [Violet]樱花
BZOJ原题链接 洛谷原题链接 其实推导很简单,只不过我太菜了想不到...又双叒叕去看题解 简单写下推导过程. 原方程:\[\dfrac{1}{x} + \dfrac{1}{y} = \dfrac{1 ...
- 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 ...
- Luogu P1445[Violet]樱花/P4167 [Violet]樱花
Luogu P1445[Violet]樱花/P4167 [Violet]樱花 真·双倍经验 化简原式: $$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$$ $$\frac ...
- 题解-洛谷P6788 「EZEC-3」四月樱花
题面 洛谷P6788 「EZEC-3」四月樱花 给定 \(n,p\),求: \[ans=\left(\prod_{x=1}^n\prod_{y|x}\frac{y^{d(y)}}{\prod_{z|y ...
- 题解 洛谷P5018【对称二叉树】(noip2018T4)
\(noip2018\) \(T4\)题解 其实呢,我是觉得这题比\(T3\)水到不知道哪里去了 毕竟我比较菜,不大会\(dp\) 好了开始讲正事 这题其实考察的其实就是选手对D(大)F(法)S(师) ...
- 题解 洛谷P2158 【[SDOI2008]仪仗队】
本文搬自本人洛谷博客 题目 本文进行了一定的更新 优化了 Markdown 中 Latex 语句的运用,加强了可读性 补充了"我们仍不曾知晓得 消失的 性质5 ",加强了推导的严谨 ...
- 题解 洛谷 P3396 【哈希冲突】(根号分治)
根号分治 前言 本题是一道讲解根号分治思想的论文题(然鹅我并没有找到论文),正 如论文中所说,根号算法--不仅是分块,根号分治利用的思想和分块像 似却又不同,某一篇洛谷日报中说过,分块算法实质上是一种 ...
随机推荐
- 【程序员技术练级】学习一门脚本语言 python(二)遍历本地文件系统
这篇将讲述怎么使用python来遍历本地文件系统,并把文件按文件大小从小到大排序的一个小例子 在这个例子中,主要会用到python内置的和OS模块的几个函数: os.walk() : 该方法用来遍历指 ...
- JS实现多少小时前,多少天前...
最近需要实现题目的功能,因为我的时间戳是PHP生成的,所以转换JS时间戳需要乘1000,废话不多说,看下面的代码把! 大家可以判断一下传进来的值是否为数值型,还有判断是否比当前的时间戳大!可以根据结果 ...
- 安装 fedora 之后
下载zsh,并安装oh-my-zsh dnf install zsh -y 到github的oh-my-zsh上按照教程安装oh-my-zsh,配置主题为minimal,这个是个人比较喜欢的主题,因为 ...
- [转]ASP.NET MVC 5 List Editor with Bootstrap Modals
本文转自:https://www.codeproject.com/articles/786085/asp-net-mvc-list-editor-with-bootstrap-modals With ...
- jquery解析xml
更多的项目都是在解析json,今天临时让解析几个xml文件,其实都一样,总结一下吧. 例如我们有这样一个xml文件 <?xml version="1.0" encoding= ...
- springboot+mybatis实现登录功能,返回json
1.新建maven项目(pom) <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...
- arcengine自己做一个工具Tool放到工具箱中
// Copyright 2010 ESRI // // All rights reserved under the copyright laws of the United States // an ...
- Appium Android 元素定位方法 原生+H5
APPIUM Android 定位方式 1.定位元素应用元素 1.1通过id定位元素 Android里面定位的id一般为resrouce-id: 代码可以这样写: WebElement eleme ...
- js判断一个dom中是否包含另一个dom的方法
首先,比较原始(蠢)的方法 function isChildOf(child, parent) { if(child && parent) { let parentNode = chi ...
- Kubernetes JSONpath Support
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=test-nginx,ap ...