一、题目链接

  https://www.nowcoder.com/acm/contest/90/F

二、题面

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
给定n,求1/x + /y = /n (x<=y)的解数。(x、y、n均为正整数)

输入描述:
在第一行输入一个正整数T。
接下来有T行,每行输入一个正整数n,请求出符合该方程要求的解数。
(<=n<=1e9)
输出描述:
输出符合该方程要求的解数。
示例1
输入

输出

三、思路

  由$\frac{1}{x} + \frac{1}{y} = \frac{1}{n}$,可推得:$x * n + y * n = x * y$,进一步可推得:$x*y-x*n-y*n+n^2 = n ^ 2$,即:$(x-n)(y-n)=n^2$。

  题目要计算满足$x \le y$的解的个数。那么,从式子$(x-n)(y-n)=n^2$可以看出,$(x-n)(y-n)$相乘为$n^2$,即只要满足$n^2\  \% (x-n) = 0, n^2\  \% (y-n) = 0$就行。也就是,只要$(x-n)$和$(y-n)$为$n^2$的因子且$x \le y$就行了。

  现在要计算$n^2$的因子个数,假设$f(n)$表示$n$的因子个数(下同)。比赛过程中,我尝试过打表,寻找$f(n)$和$f(n^2)$之间的关系,然而没找到。T_T。后来发现了这个公式:http://www.cnblogs.com/565261641-fzh/p/8641852.html。那么,$f(n^2) = f(p_1^{e_1^2} * p_2^{e_2^2} * p_3^{e_3^2} * \cdots * p_k^{e_k^2}) = (1+e_1^2) * (1+e_2^2) * (1+e_3^2) * \cdots * (1 + e_k^2)$。

  另外需要注意的一点是,在分解$n$的质因子时,如果最后$n>1$,结果还需要乘以$(1 + 1 * 2)$即乘以$3$。解释一下,第一个$1$是上面的上述公式里面的;第二个$1$是$n = n^1$指数上的$1$,$2$也是上述公式里面的。

  所求答案即为$\frac{f(n^2) + 1}{2}$。加$1$的原因是因为$n$在计算$f(n^2)$的过程中只算了一次。

四、源代码

  

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
;

template <class T> inline void read(T &x) {
    int t;
    bool flag = false;
    ')) ;
    ';
     + t - ';
    if(flag) x = -x;
}

vector<int> ps;
];
void init() {
    fill(, );
    ps.clear();
    ] = ] = false;
    ; i < ; ++i) {
        if(is[i]) {
            ; j += i)is[j] = false;
        }
    }
    ; i < ; ++i) {
        if(is[i])ps.push_back(i);
    }
}

LL calc(LL n) {
    LL res = ;
    ;
    ; i * i <= n && idx < ps.size(); ++i) {
        ) {
            ;
            ) {
                cnt++;
                n /= ps[idx];
            }
            res *= ( + cnt * );
        }
        idx++;
    }
    )res *= ;
    return res;
}

int main() {
#ifndef ONLINE_JUDGE
    //freopen("input.txt", "r", stdin);
#endif // ONLINE_JUDGE
    init();
    LL n;
    int T;
    for(scanf("%d", &T); T--;) {
        scanf("%lld", &n);
        printf() / );
    }
    ;
}

第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛-等式(求$N^2$的因子个数)的更多相关文章

  1. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛

    拖了好久了 链接:https://www.nowcoder.com/acm/contest/90/A来源:牛客网 跳台阶 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K, ...

  2. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--L-用来作弊的药水

    链接:https://www.nowcoder.com/acm/contest/90/L 来源:牛客网 1.题目描述 -- 在一个风雨交加的夜晚,来自异世界的不愿透露姓名的TMK同学获得了两种超强药水 ...

  3. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--E-回旋星空

    链接:https://www.nowcoder.com/acm/contest/90/E 来源:牛客网 1.题目描述 曾经有两个来自吉尔尼斯的人(A和C)恋爱了,他们晚上经常在一起看头上的那片名为假的 ...

  4. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--D-psd面试

    链接:https://www.nowcoder.com/acm/contest/90/D 来源:牛客网 1.题目描述 掌握未来命运的女神 psd 师兄在拿了朝田诗乃的 buff 后决定去实习. 埃森哲 ...

  5. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--G-旋转矩阵

    链接:https://www.nowcoder.com/acm/contest/90/G 来源:牛客网 1.题目描述 景驰公司自成立伊始,公司便将“推动智能交通的发展,让人类的出行更安全,更高效,更经 ...

  6. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--A-跳台阶

    链接:https://www.nowcoder.com/acm/contest/90/A 来源:牛客网 1.题目描述 小明在坐景驰科技研发的无人车到达了目的地. 景驰科技(JingChi.ai)是一家 ...

  7. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 G 旋转矩阵 【模拟】

    链接:https://www.nowcoder.com/acm/contest/90/G 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  8. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛.B.跳一跳,很简单的(Hash 倍增)

    题目链接 首先变换的周期是\(26\),而所有字符是同时变的,所以一共就只有\(26\)种树,我们对\(26\)棵树分别处理. 求某节点到根路径上的字符串,可以从根往下哈希,\(O(n)\)预处理出. ...

  9. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛----随手记录帖

    这是跟学长学姐组队来打的最爽的一次比赛了,也可能是互相组队最后一次比赛了,南哥和楼学姐,省赛之后就退役了,祝他们能考研和面试都有happy ending! 虽然最后没有把F题的n^2约数的数学题写完, ...

随机推荐

  1. shell 判断文件是否存在,没有则创建

    没有该文件则创建,有则 ls -l 输出文件信息. #!/bin/bash echo "enter the name:" read filename if test -e $fil ...

  2. json文件为空时读取会报错

    simplejson.errors.JSONDecodeError: Expecting value: line column () 提示说是解码错误 可以用下面的方法判断json文件是否为空 imp ...

  3. nodejs项目的model操作mongo

    想想以前学习hibernate的时候,学习各种表和表之间的映射关系等一对多,多对一,多对多,后来到了工作中,勇哥告诉我, 那时在学习的时候,公司中都直接用外键关联. 这里我们学习下,如何在Nodejs ...

  4. Rails-Treasure chest3 嵌套表单; Ransack(3900✨)用于模糊查询, ranked-model(800🌟)自订列表顺序; PaperTrail(5000✨)跟踪model's data,auditing and versioning.

    自订列表顺序, gem 'ranked-model' 多步骤表单 显示资料验证错误讯息 资料筛选和搜寻, gem 'ransack' (3900✨); 软删除和版本控制 数据汇出(csv), 自订列表 ...

  5. iOS UI-自动布局(Autoresizing)

    // // ViewController.m // IOS_0115_buzhi // // Created by ma c on 16/1/15. // Copyright (c) 2016年 博文 ...

  6. 201621123005《Java程序设计》第十三次实验总结

    <Java程序设计>第十三周实验总结 1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 为你的系统增加网络功能(购物车.图书馆管理.斗地主 ...

  7. Winform创建解决方案

    Winform的开发工具可以使用VS2005---VS2013,版本在不断升级,VS的功能也越来越强大.本系列文章采用VS2012(以后全称VS)演示. 窗体是winform开发的基础,需要掌握窗体的 ...

  8. Hadoop和HBase中出现 ssh登录 The authenticity of host 192.168.0.xxx can't be established.

    用ssh登录一个机器(换过ip地址),提示输入yes后,屏幕不断出现y,只有按ctrl + c结束 错误是:The authenticity of host 192.168.0.xxx can't b ...

  9. Linux wget auto login and backup database

    #!/bin/bash # 这是一份本来打算采用自动备份数据的代码,由于测试过程中出现了无法连接的问题,导致不能测试, # 于是最后放弃了这份代码的进一步的开发,但是记录还是有必要的 login_ur ...

  10. bzoj 2212 Tree Rotations

    bzoj 2212 Tree Rotations 考虑一个子树 \(x\) 的左右儿子分别为 \(ls,rs\) .那么子树 \(x\) 内的逆序对数就是 \(ls\) 内的逆序对数,\(rs\) 内 ...