zoukankan      html  css  js  c++  java
  • 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+tx$

    $x=a^{2}/t+a$

    $x=(n!)^{2}/t+n!$

    再根据唯一分解定理

    $(n!)^{2}=q_{1}^{p_{1}}*q_{2}^{p_{2}}*q_{3}^{p_{3}}*......*q_{m}^{p_{m}}$

    将$(n!)^{2}$分解质因数一下

    最后乘法原理套上去

    end.

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #define re register
     5 using namespace std;
     6 #define N 1000002
     7 const int mod=1e9+7;
     8 int n,v[N],pri[N],cct,ans=1;
     9 int main(){
    10     scanf("%d",&n);
    11     for(re int i=2;i<=n;++i){
    12         if(!v[i]) v[i]=pri[++cct]=i;
    13         for(re int j=1;j<=cct;++j){
    14             if(pri[j]>i||pri[j]*i>n) break;
    15             v[pri[j]*i]=pri[j];
    16         }
    17     }
    18     for(re int i=1;i<=cct;++i){
    19         long long cnt=0;
    20         for(re int j=n;j;j/=pri[i]) cnt+=j/pri[i];
    21         cnt=cnt<<1|1;
    22         ans=1ll*ans*cnt%mod;
    23     }printf("%d",ans);
    24     return 0;
    25 }
    View Code
  • 相关阅读:
    什么是系统瓶颈?
    功能测试之链接测试
    H5页面测试要点
    面向对象编程
    Java 基本语法(1)
    Java语言概述
    Annotation注解(有源代码)
    枚举类专题(有源代码)
    JDBC专题
    JSP专题
  • 原文地址:https://www.cnblogs.com/kafuuchino/p/9893613.html
Copyright © 2011-2022 走看看