Round#579(Div 3) C. Common Divisors

时间:2019-08-14
本文章向大家介绍Round#579(Div 3) C. Common Divisors,主要包括Round#579(Div 3) C. Common Divisors使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

---恢复内容开始---

题意:输入一组整数,寻找这组整数的公共因子个数

思路:先寻找最大公因子,再寻找最大公因子的因子个数(注意:此处的因子包括1)

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 int main() {
 5     int t;
 6     ios::sync_with_stdio(false);
 7     cin>>t;
 8     long long int tmp, inp;
 9     cin>>tmp;
10     t --;
11     while(t --){
12         cin>>inp;
13         if(tmp != 1)
14             tmp = __gcd(tmp, inp);
15     }
16     long long int ans = 0;
17     for(long long i = 1; i * i <= tmp; i ++){
18         if(tmp % i == 0){
19             ans ++;
20             if(i * i != tmp)
21                 ans ++;
22         }
23     }
24     cout<<ans<<endl;
25     return 0;
26 }

本来以为时间消耗的大头是gcd。。。计算因子个数的部分就随便写了,后来TLE了一发之后改改才过。。。。。

---恢复内容结束---

$flag 上一页 下一页