PAT-2021年秋季考试 乙级 7-2 数以类聚 (20 分)

简介: 我们把所有各位数字的乘积相同的数归为一类。例如 1362 和 2332 就是同一类,因为 1×3×6×2=2×3×3×2。给定 N 个正整数,请你判断它们可以被归成多少不同的类?

题目


我们把所有各位数字的乘积相同的数归为一类。例如 1362 和 2332 就是同一类,因为 1×3×6×2=2×3×3×2。给定 N 个正整数,请你判断它们可以被归成多少不同的类?


输入格式: 输入在第一行给出一个正整数 N(≤10 5 ),第二行给出 N 个不超过 10 7 的正整数,数字间以空格分隔。


输出格式: 在一行中输出 N 个给定的整数可以归类的数量、以及规模最大的类中最小的乘积。数字间以一个空格分隔。


输入样例:
10
1234 98 329 9552 47621 8862 5539 2333 5365 463
输出样例:
7 54


样例说明: 10 个给定数字对应的各位数字乘积依次为:24、72、54、450、336、768、675、54、450、72。所以一共有 7 个不同的种类,即:24、72、54、450、336、768、675。


其中规模最大的有 2 个 54、2 个 72、2 个 450。即这 3 个种类都分别对应了 2 个数字,在规模相等、都是最大的情况下,我们输出最小的乘积 54。


解题思路


N = int(input())
inputList = list(input().split())
# N = int("10")
# inputList = list("1234 98 329 9552 47621 8862 5539 2333 5365 463".split())
resList = []
for i in inputList:
    res = 1
    for j in i:
        res = res * int(j)
    resList.append(res)
from collections import Counter
counter = Counter(resList).most_common()
counter.sort(key= lambda x:(-x[1],x[0]))
if len(counter) == 0:
    print("0")
else:
    print(len(counter),counter[0][0])


目录
相关文章
|
1月前
7-35 情人节 (15 分)
7-35 情人节 (15 分)
25 0
PAT-2021年秋季考试 乙级 7-1 好数 (15 分)
好数是指由一对正整数 a<b 按照 a 2 +ab+b 2 这个规则生成的数,a 和 b 就称为这个好数的源头。
80 0
PAT-2021年秋季考试 乙级 7-5 取帽子 (25 分)
拼题er们觉得戴帽子会令自己看上去很帅,所以他们不管到哪里都会戴着帽子。
92 0
PAT-2021年秋季考试 乙级 7-3 自定义判题程序 (20 分)
在每次允许插入、删除、修改一个字符的前提下,用最少的动作把一个字符串变成另一个字符串,是一道著名的可以用动态规划解决的问题。
82 0
|
存储 人工智能
PAT-2021年秋季考试 乙级 7-4 数组与链表 (20 分)
让我们来设计这样一种数组与链表结合的整数存储的结构 A
107 0
L1-035 情人节 (15 分)
L1-035 情人节 (15 分)
114 0
L1-035 情人节 (15 分)
7-6 哈利·波特的考试 (8 分)
7-6 哈利·波特的考试 (8 分)
100 0
|
存储 算法 容器
天梯赛二阶题——L2-015 互评成绩(25 分)
学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。
312 0
天梯赛二阶题——L2-015 互评成绩(25 分)
|
机器学习/深度学习 C++
试题历届真题成绩统计【第十一届】【省赛】【B组】(C++)
题目描述 小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。 如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。 请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。
287 0
试题历届真题时间显示【第十二届】【省赛】【B组】(C++)
题目分析: 1.首先,输入的是毫秒,我们要先把它转化为秒:
190 0
试题历届真题时间显示【第十二届】【省赛】【B组】(C++)