---恢复内容开始---
题意:输入一组整数,寻找这组整数的公共因子个数
思路:先寻找最大公因子,再寻找最大公因子的因子个数(注意:此处的因子包括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了一发之后改改才过。。。。。
---恢复内容结束---
Round#579(Div 3) C. Common Divisors
原文:https://www.cnblogs.com/quantumbird/p/11349585.html