[Violet 5]樱花

Time Limit: 5 Sec  Memory Limit: 128 MB
Submit: 671  Solved: 395
[Submit][Status][Discuss]

Description

Input

Output

Sample Input

 

Sample Output

 

HINT

题解:

   上面废话许多。

  

  设n!=z,y=z+d

  1/x+1/y=1/z

  1/x+1/(z+d)=1/z

  (x+z+d)/(x*z+dx)=1/z

  z(x+z+d)=x*z+dx

  z^2+dz=dx

  x=z^2/d+z 

  发现就是求z^2的约数个数

很有道理

 #include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm> #define mod 1000000007
#define ll long long
#define N 1000007
using namespace std;
int read()
{
int x=;char ch=getchar();
while(ch<''||ch>'')ch=getchar();
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x;
} int n,cnt;
ll ans=;
int pri[N],mn[N],num[N];
bool flag[N]; void getpri()
{
for(int i=;i<=n;i++)
{
if(!flag[i])pri[++cnt]=i,mn[i]=cnt;
for(int j=;pri[j]*i<=n&&j<=cnt;j++)
{
flag[pri[j]*i]=;mn[pri[j]*i]=j;
if(i%pri[j]==)break;
}
}
}
void cal(int x)
{
while(x!=)
{
num[mn[x]]++;
x/=pri[mn[x]];
}
}
int main()
{
n=read();
getpri();
for(int i=;i<=n;i++)cal(i);
for(int i=;i<=cnt;i++)
ans=ans*(num[i]*+)%mod;
printf("%lld\n",ans);
}

bzoj 2721[Violet 5]樱花 数论的更多相关文章

  1. [BZOJ 2721] [Violet 5] 樱花 【线性筛】

    题目链接:BZOJ - 2721 题目分析 题目大意:求出 1 / x + 1 / y = 1 / n! 的正整数解 (x, y) 的个数. 显然,要求出正整数解 (x, y) 的个数,只要求出使 y ...

  2. BZOJ 2721: [Violet 5]樱花

    (X-N)(Y-N)=N^2 #include<cstdio> using namespace std; const int mod=1e9+7; int n,cnt,isprime[10 ...

  3. 【BZOJ 2721】 2721: [Violet 5]樱花 (筛)

    2721: [Violet 5]樱花 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 599  Solved: 354 Description Input ...

  4. 2721: [Violet 5]樱花

    2721: [Violet 5]樱花 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 547  Solved: 322[Submit][Status][D ...

  5. 【bzoj2721】[Violet 5]樱花 数论

    题目描述 输入 输出 样例输入 2 样例输出 3 题解 数论 设1/x+1/y=1/m,那么xm+ym=xy,所以xy-xm-ym+m^2=m^2,所以(x-m)(y-m)=m^2. 所以解的数量就是 ...

  6. 2721: [Violet 5]樱花|约数个数

    先跪一发题目背景QAQ 显然x,y>n!,然后能够设y=n!+d 原式子能够化简成 x=n!2d+n! 那么解的个数也就是n!的因子个数,然后线性筛随便搞一搞 #include<cstdi ...

  7. 二分+最短路判定 BZOJ 2709: [Violet 1]迷宫花园

    BZOJ 2709: [Violet 1]迷宫花园 Sample Input 5 ######### # # # # # # # #S# # ##### # # ## # # # ### ### ## ...

  8. BZOJ_2721_[Violet 5]樱花_数学

    BZOJ_2721_[Violet 5]樱花_数学 Description Input Output $\frac{1}{x}+\frac{1}{y}=\frac{1}{m}$ $xm+ym=xy$ ...

  9. 【BZOJ2721】[Violet 5]樱花 线性筛素数

    [BZOJ2721][Violet 5]樱花 Description Input Output Sample Input 2 Sample Output 3 HINT 题解:,所以就是求(n!)2的约 ...

随机推荐

  1. AJPFX总结面向对象(this和super的区别和应用)

    面向对象(this和super的区别和应用)(掌握)* A:this和super都代表什么        * this:代表当前对象的引用,谁来调用我,我就代表谁        * super:代表当 ...

  2. AJPFX实现兔子问题

    有一对小兔子,从第三个月长成开始每个月生一对小兔子,新出生的小兔子从第三个月长成开始每个月也生一对小兔子,假设所有的兔子都不会死,问每个月兔子的总数?(月数可以是6,12).大神看看我笨方法谢的对吗? ...

  3. [转]qt QTableWidget&&QTableView 导出数据到excel

    转自http://blog.csdn.net/fairystepwgl/article/details/54576372 注意:由于在qt导出的过程中分为QTableWidget导出文件到excel和 ...

  4. Outlook 数据文件(.pst 和 .ost)简介

    使用 Microsoft Outlook 时,电子邮件.日历.任务和其他项目保存在邮件服务器或计算机上,或者同时保存在这两个位置.如果 Outlook 项目保存在计算机上,则它们保存在 Outlook ...

  5. 推荐一个有趣的Chrome扩展程序-查看任意网站的开发技术栈

    对于前端开发人员来说,目前的前端框架层出不穷,最受欢迎的莫过于所谓的前端框架三驾马车:Angular, React和Vue.在学习的过程中,肯定好奇现在的互联网公司的网站用的何种前端框架来开发的. C ...

  6. Git 版本控制系统的基本使用、常用操作

    以Ubuntu16.04操作系统为例(其他系统类似),主要记录常用的.基本操作: 0. 安装Git 分散型版本控制系统(CVS): sudo apt-get install git 1. 初始化本地配 ...

  7. 为什么要使用spl_autoload_unregister

    最近学习 laravel 源码,发现他的 autoload_real.php 里面有一段: spl_autoload_register(array('ComposerAutoloaderInit290 ...

  8. DROP VIEW - 删除一个视图

    SYNOPSIS DROP VIEW name [, ...] [ CASCADE | RESTRICT ] DESCRIPTION 描述 DROP VIEW 从数据库中删除一个现存的视图. 执行这条 ...

  9. postman使用方法详解

    postman的使用方法详解   Collections:在Postman中,Collection类似文件夹,可以把同一个项目的请求放在一个Collection里方便管理和分享,Collection里 ...

  10. 5 秒创建 k8s 集群[转]

    据说 Google 的数据中心里运行着超过 20 亿个容器,而且 Google 十年前就开始使用容器技术. 最初,Google 开发了一个叫 Borg 的系统(现在命令为 Omega)来调度如此庞大数 ...