问题描述
给定正整数 a, b, c,请问有多少个正整数,是其中至少两个数的约数。
输入格式
输入一行包含三个正整数 a, b, c。
输出格式
输出一行包含一个整数,表示答案。
样例输入
30 70 35
样例输出
6
样例说明
1、2、5、7、10、35满足条件。
评测用例规模与约定
对于 50% 的评测用例,1 <= a, b, c <= 1000000。
对于所有评测用例,a, b, c 不超过 10**12(10的12次方)。
//法一
#include<bits/stdc++.h>
using namespace std;
int main()
{
long a,b,c;
cin>>a>>b>>c;
long m=max(a,b);
long n=max(m,c);
long ans=0;
int i;
for(i=1;i<=n;i++)
{
int cnt=0;
if(a%i==0){
cnt++;
}
if(b%i==0){
cnt++;
}
if(c%i==0){
cnt++;
}
if(cnt>=2){
ans++;
}
}
cout<<ans<<endl;
return 0;
}
//法二
#include<bits/stdc++.h>
using namespace std;
int main()
{
long a,b,c,d,e;
cin>>a>>b>>c;
for(d=1,e=0;d<=1000000;d++)
{
if(a%d==0&&b%d==0||a%d==0&&c%d==0||b%d==0&&c%d==0)
{
e++;
}
}
cout<<e<<endl;
}