蓝桥杯真题【最小公倍数】

蓝桥杯真题【最小公倍数】

import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
      /*
      思路:
      这个题目就是找出1到n的最小公倍数。
      有个结论:如果某个数a含有约数b,那么数a的倍数也含有这个约数b。
      那么可以把1到n的每个数都分解成最基本的公约数(质数)的幂次方相乘的形式,
      然后用一个集合把这些质数装起来,这些质数的幂次方取分解出的最大值,
      这样最小公倍数=质数1^max(最大幂次)*质数2^max(最大幂次)*……
      */
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        scan.close();
    }
}
### 蓝桥杯 Python 真题及解析 蓝桥杯竞赛作为一项面向全国的编程赛事,其试题涵盖了广泛的领域和难度层次。以下是关于蓝桥杯 Python 的一些经典真题及其解析。 #### 数字出现次数问题 在蓝桥杯青少年组的一道典型题目中,涉及统计某个数字在给定范围内出现的总次数[^1]。这类问题通常可以通过字符串处理的方式解决: ```python def count_digit_occurrences(start, end, digit): count = 0 for num in range(start, end + 1): count += str(num).count(str(digit)) return count start = int(input("请输入起始值:")) end = int(input("请输入结束值:")) digit = int(input("请输入要查找的数字(0-9):")) result = count_digit_occurrences(start, end, digit) print(f"数字 {digit} 在 [{start}, {end}] 范围内共出现了 {result} 次") ``` 此代码通过将每个整数转换为字符串并调用 `str.count()` 方法实现计数功能。 --- #### 计算三个数的最小公倍数 另一类常见问题是求多个数的最小公倍数 (LCM)[^2]。下面是一个基于枚举法的解决方案: ```python from math import gcd def lcm(a, b): return abs(a * b) // gcd(a, b) def find_lcm_of_three_numbers(x, y, z): temp = lcm(x, y) result = lcm(temp, z) return result x = int(input("请输入第一个正整数:")) y = int(input("请输入第二个正整数:")) z = int(input("请输入第三个正整数:")) lcm_result = find_lcm_of_three_numbers(x, y, z) print(f"{x}, {y}, {z} 的最小公倍数是 {lcm_result}") ``` 上述方法利用了辗转相除法计算最大公约数,并进一步推导出两数之间的 LCM,最终扩展到三数情况[^2]。 --- #### 绘制特定图案 绘制几何形状也是蓝桥杯中的热点之一[^3]。例如,要求用户输入参数后生成指定大小的直角三角形: ```python n = int(input("请输入三角形的高度:")) for i in range(1, n + 1): print('*' * i) ``` 这段脚本展示了如何借助嵌套循环完成简单的 ASCII 图形渲染任务。 --- #### 输入与输出交互 许多基础题目考察选手对于基本 I/O 操作的理解程度。比如读取多组测试样例的数据并逐一回应它们的结果。这里提供了一个通用框架供参考: ```python test_cases = int(input()) results = [] for _ in range(test_cases): data = list(map(int, input().split())) results.append(sum(data)) # 可替换为目标逻辑运算 for res in results: print(res) ``` 这种结构非常适合批量处理独立子问题的情形。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值