zoukankan      html  css  js  c++  java
  • bzoj 4459: [Jsoi2013]丢番图 -- 数学

    4459: [Jsoi2013]丢番图

    Time Limit: 10 Sec  Memory Limit: 64 MB

    Description

    丢番图是亚历山大时期埃及著名的数学家。他是最早研究整数系数不定方程的数学家之一。
    为了纪念他,这些方程一般被称作丢番图方程。最著名的丢番图方程之一是x^N+y^n=z^N。费马
    提出,对于N>2,x,y,z没有正整数解。这被称为“费马大定理”,它的证明直到最近才被安德
    鲁·怀尔斯(AndrewWiles)证明。
    考虑如下的丢番图方程:
    1/x+1/y=1/n(x,y,n属于N+)                      (1)
    小G对下面这个问题十分感兴趣:对于一个给定的正整数n,有多少种本质不同的解满足方
    程(1)?例如n=4,有三种本质不同(x≤y)的解:
    1/5+1/20=1/4
    1/6+1/12=1/4
    1/8+1/8=1/4
    显然,对于更大的n,没有意义去列举所有本质不同的解。你能否帮助小G快速地求出对于
    给定n,满足方程(1)的本质不同的解的个数?

    Input

    一行,仅一个整数n(1<=N<=10^14)

    Output

    一行,输出对于给定整数n,满足方程(1)的本质不同的解的个数。

    Sample Input

    4

    Sample Output

    3

    HINT

    而一个数的约数个数等于所有质因数的次数+1的乘积。

           然后就好了。

    #include<cmath>
    #include<cstdio>
    #define ll long long
    ll ans=1,n;
    int m,now;
    int main()
    {
        scanf("%lld",&n);
        m=sqrt(n+0.5);
        for(int i=2;i<=m&&i<=n;i++)
        {
            now=0;
            while(n%i==0){now++;n/=i;}
            ans*=now<<1|1;
        }
        if(n>1) ans*=3;
        printf("%lld
    ",ans+1>>1);
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Linux常用命令
    C# 报表设计器 (winform 设计端)开发与实现生成网页的HTML报表
    完成复杂表头列表
    流程设计--页面介绍
    流程设计--设计理念
    报表设计--坐标实例-位移坐标
    Spring MVC 工作原理--自我理解
    java ==、equals和hashCode的区别和联系
    java 自动装箱和拆箱
    java maven笔记
  • 原文地址:https://www.cnblogs.com/lkhll/p/6557848.html
Copyright © 2011-2022 走看看