首页 > 试题广场 >

公约数

[编程题]公约数
  • 热度指数:1072 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
桌面上有 n 张牌,每张牌上写了一个数字,第 i 张牌的数字为 a。现在从中选出 K 张牌,把选出牌上的数字全部乘起来,得到一个数 X。
问有多少种不同的选择方案,使得 X 和 A 的最大公约数大于等于 B。

数据范围:   

输入描述:
第一行第 n , k , a ,b。接下来一行 n 个数,每张牌上的数字


输出描述:
输出方案数
示例1

输入

5 2 12 6
4 4 1 2 3

输出

3
头像 17c89
发表于 2024-02-21 13:12:40
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); while 展开全文
头像 bandiaoz
发表于 2024-12-29 01:39:24
解题思路 这是一个动态规划和数论结合的问题。给定: 张牌,每张牌上有一个数字 需要选择 张牌,将这些数字相乘得到 求使得 的方案数 解决方案: 先找出 的所有因子 使用动态规划, 表示选 张牌时乘积与 的最大公约数为 的方案数 最后统计所有满足条件()的方案数 关键点: 展开全文

问题信息

难度:
6条回答 2853浏览

热门推荐

通过挑战的用户

查看代码
公约数