题目描述
给定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
43 1 20180101 1000000000
输出
复制代码
1
2
31 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程序设计大赛补题内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复