我是靠谱客的博主 儒雅钢铁侠,这篇文章主要介绍第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛补题,现在分享给大家,希望可以做个参考。

题目描述 

给定n,求1/x + 1/y = 1/n (x<=y)的解数。(x、y、n均为正整数)


输入描述:

复制代码
1
2
3
在第一行输入一个正整数T。 接下来有T行,每行输入一个正整数n,请求出符合该方程要求的解数。 (1<=n<=1e9)

输出描述:

复制代码
1
输出符合该方程要求的解数。
示例1

输入

复制代码
1
2
3
4
3 1 20180101 1000000000

输出

复制代码
1
2
3
1 5 181

心力交猝,这份补题本来打算写在一起的结果发了三遍都失败了,唉

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<stdio.h> #include<math.h> #include<string> #include<iostream> #include<string.h> #include<algorithm> #include<vector> #include<queue> using namespace std; #define inf 0x3f3f3f3f int num[100]; int main() { int n,t; scanf("%d",&t); while(t--) { scanf("%d",&n); memset(num,0,sizeof(num)); int k=0; for(int i=2; i*i<=n; i++) { if(n%i==0) { while(n%i==0) { num[k]++; n/=i; } k++; } } if(n!=1) { num[k]++; k++; } for(int i=0;i<k;i++) { num[i]*=2; } int sum=1; for(int i=0;i<k;i++) sum*=(num[i]+1); printf("%dn",(sum+1)/2); } }

最后

以上就是儒雅钢铁侠最近收集整理的关于第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛补题的全部内容,更多相关第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛补题内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部