目录
🍋题目描述
问题描述
给定正整数 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次方)。
🍋思路
还是蛮简单得。就是求两个数的约数。我们需要注意的是可能出现三个数的约数,那就不能单纯的定义一个ans来进行++。而是要定义一个HashSet来进行存约数,之后我们就输出HashSet的长度即可。
🍋源代码
import java.util.HashSet;
import java.util.Scanner;
public class Main {
static HashSet<Integer>set=new HashSet<Integer>();
static void gcd(long a,long b) {
for(int i=1;i<=Math.min(a, b);i++) {
if(a%i==0&&b%i==0) {
set.add(i);
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in =new Scanner(System.in);
long a=in.nextLong(),b=in.nextLong(),c=in.nextLong();
gcd(a,b);
gcd(a,c);
gcd(b,c);
System.out.println(set.size());
}
}
🍋其他真题
链接: 最全的2021蓝桥杯算法课《算法很美》的学习笔记总目录+真题详解.