0
点赞
收藏
分享

微信扫一扫

Java习题练习:公约数

我是小小懒 2022-03-30 阅读 20

目录

🍋题目描述

问题描述

给定正整数 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蓝桥杯算法课《算法很美》的学习笔记总目录+真题详解.

举报

相关推荐

0 条评论