【数学】第十三届蓝桥杯省赛C++ A组/研究生组 Python A组/研究生组《数的拆分》(C++)

news2024/11/16 19:27:19

【题目描述】

给定 T 个正整数 A_{i},分别问每个 A_{i} 能否表示为 x_{1}^{y1} \cdot x_{2}^{y2} 的形式,其中 x_{1},x_{2} 为正整数,y_{1}, y_{2}为大于等于 2 的正整数。

【输入格式】

输入第一行包含一个整数 T 表示询问次数。

接下来 T 行,每行包含一个正整数A_{i}

【输出格式】

对于每次询问, 如果 A_{i} 能够表示为题目描述的形式则输出 yes,否则输出 no

【数据范围】

对于 10% 的评测用例,1 ≤ T ≤ 200,A_{i} ≤ 10^{9}
对于 30% 的评测用例,1 ≤ T ≤ 300,A_{i} ≤ 10^{18}
对于 60% 的评测用例,1 ≤ T ≤ 10000,A_{i}≤ 10^{18}
对于所有评测用例,1 ≤ T ≤ 100000,1 ≤ A_{i} ≤ 10^{18}

【输入样例】

7
2
6
12
4
8
24
72

【输出样例】

no
no
no
yes
yes
no
yes

【样例解释】

【思路】

题解来源:AcWing 4650. 数的拆分 - AcWing

【代码】

#include <bits/stdc++.h>
typedef long long LL;
const int N = 4010;
int v[N]; // v[i]记录数字i的最小质因子
int prime[N], m;
void init() //线性筛
{
    memset(v, 0, sizeof v); // v[i]记录数字i的最小质因子
    m = 0;                  // m记录质数个数
    for (int i = 2; i <= 4000; ++i)
    {
        if (v[i] == 0) // i是质数
        {
            v[i] = i;
            prime[++m] = i;
        }
        for (int j = 1; j <= m; ++j)
        {
            //若i有比prime[j]更小的质因子,或超出n的范围,则停止循环
            if (prime[j] > v[i] || prime[j] > 4000 / i)
                break;
            // prime[j]是合数i*prime[j]的最小质因子
            v[i * prime[j]] = prime[j];
        }
    }
}
bool check(LL x) //判断一个数是否是平方数或立方数
{
    LL l = 1, r = 2e9;
    while (l < r)
    {
        LL mid = l + r >> 1;
        if (mid * mid >= x)
            r = mid;
        else
            l = mid + 1;
    }
    if (l * l == x)
        return true;
    l = 1, r = 2e6;
    while (l < r)
    {
        LL mid = l + r >> 1;
        if (mid * mid * mid >= x)
            r = mid;
        else
            l = mid + 1;
    }
    if (l * l * l == x)
        return true;
    return false;
}
signed main()
{
    std::ios::sync_with_stdio(false);
    std::cin.tie(0);
    std::cout.tie(0);
    int T = 1;
    std::cin >> T;
    init();
    while (T--)
    {
        LL x;
        std::cin >> x;
        if (check(x))
        {
            std::cout << "yes" << '\n';
            continue;
        }
        bool impossible = false;
        for (int i = 1; i <= m; ++i)
        {
            if (x % prime[i] == 0)
            {
                int t = 0;
                while (x % prime[i] == 0)
                {
                    ++t;
                    x /= prime[i];
                }
                if (t == 1)
                {
                    impossible = true;
                    break;
                }
            }
        }
        if (!impossible && check(x))
            std::cout << "yes" << '\n';
        else
            std::cout << "no" << '\n';
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1548724.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS 7 下安装RabbitMQ教程

CentOS 7 下安装RabbitMQ教程 一、做准备&#xff08;VMWare 虚拟机上的 CentOS 7 镜像 上安装的&#xff09; &#xff08;1&#xff09;准备RabbitMQ的安装包&#xff08;rabbitmq-server-3.8.5-1.el7.noarch&#xff09;下载地址mq &#xff08;2&#xff09;还得准备erl…

你的 Python 代码需要解释一下了!

Python 是一种相对简单的编程语言。它主要以解释型语言著称&#xff0c;这意味着每行代码都要通过解释器逐行执行。不过在某些时候&#xff0c;将 Python 代码翻译成计算机可以理解的内容&#xff0c;然后再逐行执行&#xff0c;可以减少繁琐。 在这种情况下&#xff0c;编译器…

日本EPSON 爱普生HUD汽车抬头显示系统芯片

目前HUD产品在新车上的配装率逐年上升&#xff0c;预计在2025年将达到30%。那么在介绍爱普生HUD整合方案之前&#xff0c;让我们先了解一下什么叫HUD。 HUD&#xff08;Head Up Display&#xff09;中文叫抬头显示系统&#xff0c;又被叫做平行显示系统。早被应用在飞机辅助…

2024游泳耳机哪个牌子好?分析测评四大热门游泳耳机

随着科技的不断发展&#xff0c;游泳耳机已经成为游泳爱好者们在水中畅游时的最佳伴侣。近年来游泳耳机市场涌现出了众多品牌和产品&#xff0c;让人眼花缭乱。为了帮助大家挑选到最适合自己的游泳耳机&#xff0c;我们特意对市面上四大热门游泳耳机进行了详细的分析测评&#…

【正点原子FreeRTOS学习笔记】————(13)队列集

这里写目录标题 一、队列集简介&#xff08;了解&#xff09;二、队列集相关API函数介绍&#xff08;熟悉&#xff09;三、队列集操作实验&#xff08;掌握&#xff09; 一、队列集简介&#xff08;了解&#xff09; 一个队列只允许任务间传递的消息为同一种数据类型&#xff…

【字节二面】SpringBoot可以同时处理多少请求

目录 一、示例代码二、那么springboot可以处理多少请求&#xff1f;三、maxConnections、maxThreads、acceptCount的关系 一、示例代码 RestController Slf4j public class RequestController {GetMapping("/test")public String test(HttpServletRequest request) …

飞书很好,但赢不了,只能裁员

心碎飞书 3 月 26 日&#xff0c;字节跳动旗下产品飞书的 CEO 谢欣发布全员信&#xff0c;正式宣布进行新一轮的组织调整&#xff0c;即裁员。 内部全员信如下&#xff1a; 我有不少朋友是在字节跳动&#xff0c;甚至就在 Lark 的。 同时我也因为会经常和一些平台的运营小伙伴有…

抖店被判无货源违规后该怎么办?避免这几项!开抖音小店无风险!

哈喽~我是电商月月 今天我们来聊一聊抖音小店被提示无货源风险后 商家怎么做&#xff0c;才能最大化挽回损失&#xff0c;以及后续如何避免的解决方案&#xff1a; 一&#xff0e;被判无货源的四个程度 1.收到平台提示&#xff1a;店铺存在无货源风险时 这个时候店铺基本就…

设置http响应报文

一、总结&#xff1a; (1)设置响应状态码&#xff1a; response.statusCode (2)设置响应状态描述&#xff1a; response.statusMessage() 使用的极少 (3)设置响应头信息&#xff1a; response.setHeader(头值,头名) (4)设置响应体&#xff1a; response…

个人或企业防止网络攻击的方法总结

个人或企业防止网络攻击的方法总结。 随着威胁形势的不断发展&#xff0c;建立全面的网络安全解决方案需要外围安全性和主动的网内防御 。随着网络攻击的范围&#xff0c;规模和频率不断增加&#xff0c;网络卫生正变得越来越重要。 与个人卫生相似&#xff0c;网络卫生是指旨…

文献速递:基于SAM的医学图像分割--SAMUS:适应临床友好型和泛化的超声图像分割的Segment Anything模型

Title 题目 SAMUS: Adapting Segment Anything Model for Clinically-Friendly and Generalizable Ultrasound Image Segmentation SAMUS&#xff1a;适应临床友好型和泛化的超声图像分割的Segment Anything模型 01 文献速递介绍 医学图像分割是一项关键技术&#xff0c;用…

阿里云部署宝塔,设置了安全组还是打不开。

1.在安全组是开放正确的端口好。8888要开&#xff0c;但是不只是开放8888&#xff0c;举个例子&#xff0c;https://47.99.53.222:17677/49706cf7这个&#xff0c;要开放17677这个端口号。 2.安全组要挂载到实例上&#xff0c;从三个点的进入点击管理实例&#xff0c;加到对应的…

对 Transformer 中位置编码 Position Encoding 的理解

目录 什么是位置编码 Position Encoding 一、将绝对位置编码加在 Transformer 的输入端 (Sinusoidal 位置编码或可学习位置编码) 二、将绝对位置编码乘在 q k v (RoPE 位置编码) 三、将相对位置编码加在注意力权重 (ALiBi 位置编码) 什么是位置编码 Position Encoding Tr…

wordcloud-1.9.2(1.9.3) for python 3.6/python3.X增强补丁

wordcloud-1.9.1开始无法在python3.6和海龟编辑器内正常使用&#xff0c;特做了一个whl 提供给python3.6使用。 另外我自己使用Python3.8 &#xff0c;因此wordcloud-1.9.2-cp36-cp36-win_amd64.whl 和wordcloud-1.9.3-cp38-cp38-win_amd64.whl&#xff0c;词云图上有前20个单…

【2024.3.27练习】小朋友排队

题目描述 题目分析 该题的答案交换次数与冒泡排序算法的交换次数应该是相同的。由于冒泡排序的时间复杂度为&#xff0c;不适合本题的数据大小。所以我们需要一个更加高效的数据结构。 分析题目&#xff0c;思路每轮是将最小的数字交换至最前&#xff0c;该数字的交换次数即它…

P5507 机关

题目背景 Steve成功降落后&#xff0c;在M星上发现了一扇大门&#xff0c;但是这扇大门是锁着的 题目描述 这扇门上有一个机关&#xff0c;上面一共有12个旋钮&#xff0c;每个旋钮有4个状态&#xff0c;将旋钮的状态用数字1到4表示 每个旋钮只能向一个方向旋转&#xff08…

页面router路由设计

Vue命名视图 命名视图 | Vue Router 如果要在 如何要在main区域里使用路由的话&#xff0c;整体区域是Layout&#xff0c;内涵Header和Nav以及Main path: /index,name: index,component: Layout, 若要只修改main区域的话&#xff0c;则取要加上v-if判断&#xff0c;来确实是…

小程序接入第三方信息流流程 下载SDK

由第三方信息流提供相应的SDK下载链接以及接入说明和开发文档或其他方式接入&#xff0c;如果第三方能支持小程序SDK&#xff0c;则不需要后面步骤&#xff0c;只需要提供相关开发文档和接入方式接口 接入SDK 后台开发人员接入第三方提供的SDK&#xff0c;并进行相关接口开发…

MySQL数据库的高级SQL语句与高级操作(2)

目录 一、子查询 1、语法: 2、以下例子均以图中两个表为基础 例子1&#xff1a;查询yun1班级大于85分的学生记录 例子2&#xff1a;将yun2班的学生记录放在一个单独的表中&#xff0c;叫yun2 例子3&#xff1a;教务处误把yun3班叫张丽的学生的成绩搞错了&#xff0c;应该为…

测试开发工程师(QA)职业到底需要干些什么?part5:性能测试工程师QA

工作职责 性能测试工程师&#xff08;Performance Testing Engineer&#xff09;是负责评估和优化软件、应用程序或系统在不同负载和压力条件下的性能的专业人员。他们的工作职责包括以下几个方面&#xff1a; 性能测试计划&#xff1a;性能测试工程师与开发团队、产品团队和系…