2721: [Violet 5]樱花

Time Limit: 5 Sec  Memory Limit: 128 MB
Submit: 499  Solved: 293
[Submit][Status][Discuss]

Description

Input

Output

Sample Input

 3

Sample Output

 9

HINT

Source

interviewstreet--EQUATIONS

Solution

巧妙!

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

则可以得到$\frac{1}{x}+\frac{1}{y}=\frac{1}{z}=>x=\frac{yz}{y-z}$

再另$t=y-z$则可以得到$x=z+\frac{z^{2}}{t}$

所以我们求$n!^{2}$的约数,就是答案,这就利用到线筛

Code

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
#define P 1000000007
#define LL long long
],z[],tmp;
];
LL ans=1LL;
void Getprime()
{
    flag[]=; cnt=;
    ; i<=N; i++)
        {
            if (!flag[i]) prime[++cnt]=i;
            ; j<=cnt && prime[j]*i<=N; j++)
                {
                    flag[i*prime[j]]=;
                    ) break;
                }
        }
}
void Calc(int x)
{
    for (int i=prime[x]; i<=N; i+=prime[x])
        ; j/=prime[x]) z[x]++;
}
int main()
{
    scanf("%d",&N);
    Getprime();
    ; i<=cnt; i++) Calc(i);
    ; i<=cnt; i++) printf("%d   ",z[i]); puts("");
    ; i<=cnt; i++) ans=((LL)ans*(z[i]<<|)%P)%P;
    printf("%lld\n",ans);
    ;
} 

随机推荐

  1. 让Redis在你的系统中发挥更大作用的几点建议

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/105.html?1455868313 Redis在很多方面与其他数据库解决 ...

  2. jQuery高级技巧——DOM操作篇

      页面加载之DOMReady事件 所谓domReady,也就是文档就绪,我们都知道,在操作dom时必须要在dom树加载完成后才能进行操作.如何检测DOM树已经构建完成,以下是一些实现的方式: 1.使 ...

  3. Vmware ESX5i 环境下部署Windows Storage Server 2008 R2

    ESX5i 环境下部署Windows Storage Server 2008 R2       Windows Storage Server 2008 这款产品微软早已发布,WSS2008是基于Win ...

  4. 链表回文串判断&amp;&amp;链式A+B

    有段时间没有练习了,链表回文串判断用到了栈.链式A+B将没有的项用0补充.链表有没有头节点,及结点和链表的区别,即pNode和pHead. //#include<iostream> //u ...

  5. unix network programming(3rd)Vol.1 [第2~5章]《读书笔记系列》

    13~22章 重要 第2章 传输层: TCP/ UDP / STCP (Stream Control Transmission Protocol) TCP 可靠,有重传机制,SYN队列号 UDP 不可 ...

  6. 零基础学redis

    第一个阶段:redis基本知识了解: 1. redis的百度百科解释: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言 ...

  7. java枚举的使用

    定义枚举 public enum YesOrNo { YES("是") , NO("否") ; private String text ; private in ...

  8. 17.从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行。请采用循环控制语句来实现。 (三角形腰上的数为1,其他位置的数为其上一行相邻两个数之和。) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

    17.从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行.请采用循环控制语句来实现. (三角形腰上的数为1,其他位置的数为其上一行相邻两个数之和.) 1 1 1 1 ...

  9. 信号处理——傅里叶变换(FT-DTFT-DFT)

    作者:桂. 时间:2017-01-17  23:41:13 链接:http://www.cnblogs.com/xingshansi/articles/6294111.html 声明:转载请注明出处, ...

  10. Python函数篇(二)之递归函数、匿名函数及高阶函数

    1.全局变量和局部变量 一般定义在程序的最开始的变量称为函数变量,在子程序中定义的变量称为局部变量,可以简单的理解为,无缩进的为全局变量,有缩进的是局部变量,全局变量的作用域是整个程序,而局部变量的作 ...