PROB1023 小明的抽奖游戏
描述:
小明组织了一场抽奖游戏,他给每个参加抽奖的人都发放了一张写有幸运数字的卡片,之后,他会用一套系统随机抽出一些中奖数字,中奖数字为任意幸运数字因数的人将获得奖品。现在,他想知道,一共有多少人将会获得奖品。
输入:
第一行一个整数 n,表示参加抽奖的人数,题目保证 1≤n≤10^5。
第二行 n 个整数 a1,a2,⋯,an,表示每个人的幸运数字 a,题目保证 1≤a≤10^9。
第三行一个整数 m,表示系统将要抽出的中奖数字个数,题目保证 1≤m≤10^2。
接下来 m 行,每行一个整数 b1,b2,⋯,bn,表示系统抽出的每个中奖数字 b,题目保证 1≤b≤10^9。
输出:
输出一行,共一个整数,表示总获奖人数。
样例输入:
6 6 1 2 3 4 6 2 3 4
样例输出:
4
样例输入:
5 14 17 12 97 40 2 4 3
样例输出:
2
基于python实现的代码:
def count_winners(n, participants, m, winning_numbers):
winners = set()
for b in winning_numbers:
for a in participants:
if b % a == 0:
winners.add(a)
return len(winners)
n = int(input())
participants = list(map(int, input().split()))
m = int(input())
winning_numbers = [int(input()) for _ in range(m)]
total_winners = count_winners(n, participants, m, winning_numbers)
print(total_winners)