第十四届蓝桥杯真题打卡——第七天

第十四届蓝桥杯真题打卡——第七天

  • 群佬名言
  • 第一题
    • 题目:
      • 三角回文数
    • 题目描述
    • 运行限制
    • 结果
    • 代码
  • 第二题
    • 题目:
      • 数数
    • 问题描述
    • 运行限制
    • 结果
    • 代码
  • 第三题
    • 题目:
      • 数组切分
    • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
    • 运行限制
    • 代码
  • GG

以下内容采用python3编译

群佬名言

Alt


第一题

题目:

三角回文数

题目描述

这是一道结果填空的题, 你只需要算出结果后提交即可。本题的结果为一 个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。

第十四届蓝桥杯真题打卡——第七天_第1张图片

运行限制

最大运行时间:1s
最大运行内存: 256M

结果

35133153

代码

import os
import sys

# 请在此输入您的代码
for k in range(4000,200000):
  n=k*(k+1)//2
  s=str(n)
  if s==s[::-1]:
    print(n)
    break

第二题

题目:

数数

问题描述

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。

任何一个大于 1 的正整数都能被分解为若干个质数相乘, 比如 28=2×2×7 被分解为了三个质数相乘。请
问在区间 [2333333, 23333333] 中有多少个正整数 可以被分解为 12 个质数相乘?

运行限制

最大运行时间:1s
最大运行内存: 512M

结果

25606

代码

import os
import sys

# 请在此输入您的代码
import math
from itertools import combinations
from functools import reduce

# 筛法求质数
def get_primes(end):
    is_prime = [True] * (end + 1)
    primes = []
    for i in range(2, end + 1):
        if is_prime[i]:
            primes.append(i)
            for j in range(i * i, end + 1, i):
                is_prime[j] = False
    return primes

# 计算区间内可以被分解为12个质数相乘的正整数个数
def count_numbers(start, end):
    primes = get_primes(end // 12)
    count = 0
    for nums in combinations(primes, 12):
        num = reduce(lambda x, y: x * y, nums)
        if num >= start and num <= end:
            count += reduce(lambda x, y: x * y, range(1, 13))
    return count

# 测试
start = 2333333
end = 23333333
count = count_numbers(start, end)
print(count)

第三题

题目:

数组切分

问题描述

第十四届蓝桥杯真题打卡——第七天_第2张图片

输入格式

第一行包含一个整数 N 。第二行包含 N 个整数, 代表 A 数组。

输出格式

输出一个整数表示答案。由于答案可能很大, 所以输出其对 1000000007 取 模后的值

样例输入

4
1 3 2 4

样例输出

5

运行限制

最大运行时间:5s
最大运行内存: 512M

代码

GG写了几种方法全部超时

GG

你可能感兴趣的:(第十四届蓝桥打卡,蓝桥杯,算法,python)