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

【题目描述】

给定 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;elsel = 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;elsel = 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';elsestd::cout << "no" << '\n';}
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TF卡系统备份与还原

本文介绍一种用备份还原方法&#xff0c;快速实现TF启动卡制作&#xff0c;使用方便&#xff0c;无需安装linux系统&#xff0c;需要使用Diskgnius软件。 安装Diskgnius&#xff0c;64位绿色版本&#xff0c;无需安装&#xff0c;直接运行即可。运行Diskgnius软件&#xff0c;将…

二叉树|235.二叉搜索树的最近公共祖先

力扣题目链接 class Solution { private:TreeNode* traversal(TreeNode* cur, TreeNode* p, TreeNode* q) {if (cur NULL) return cur;// 中if (cur->val > p->val && cur->val > q->val) { // 左TreeNode* left traversal(cur->left, p, q)…

抖音小店月入三五万?真有这么赚钱吗?

大家好&#xff0c;我是电商糖果 在网上我们经常看到这样的帖子&#xff0c;或者视频博主说他自己在抖音开小店做副业。 收入比主业还高&#xff0c;一个月好几万。 很多人都说骗人的&#xff0c;要是赚钱这么容易&#xff0c;我不早成富一代了。 糖果是做电商的&#xff0…

JMeter 环境安装及配置

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

oracle docker安装

修改下载的Image的REPOSITORY和TAG属性 修改下载的Image的REPOSITORY和TAG属性&#xff1a;docker tag <IMAGE ID> <REPOSITORY NAME> docker tag 3fa112fd3642 aliyun/oracle_11g 参考网址 使用docker images时&#xff0c;可能会出现REPOSITORY和TAG均为none的镜…

【C++】手撕哈希表的闭散列和开散列

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;手撕哈希表的闭散列和开散列 > 毒鸡汤&#xff1a;谁不是一边受伤&#xff0c;一边学会坚强。 > 专栏选自&#xff1a;C嘎嘎进阶 > 望小伙伴们…

如何用AI写作工具输出高质量内容?

随着人工智能技术的不断发展&#xff0c;AI写作工具正逐渐成为现代写作者的得力助手。它们能够通过智能算法分析大量的数据&#xff0c;生成高质量的文章内容&#xff0c;极大地提高了写作效率。但是&#xff0c;如何正确地使用这些AI写作工具输出高质量的内容&#xff0c;仍然…

Day22代码随想录(1刷) 二叉树

235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&am…

CI860K01 3BSE032444R1 参数说明书

ABB CI860K01 3BSE032444R1是一款ABB公司生产的通信接口模块。 这款模块是专为工业自动化环境设计的&#xff0c;能够在各种设备之间提供稳定和可靠的数据传输接口。它采用了先进的通信技术和严格的生产工艺&#xff0c;确保了产品的高质量和性能。此外&#xff0c;它的设计合…

插槽和自定义命令

自定义指令 自定义的指令,定义好之后,在标签内使用,当执行new Vue去模板的时候,看到自定义指令,会将下面的函数,等到特定执行Vue实例阶段触发.模板渲染之后.当触发时的传参的参数的第一个是所写的对象的DOM对象,第二个是是包含指令的对象,对象value是指令赋值.当把指令写到标签…

产品推荐 | 基于 ALINX XILINX ZYNQ-7000 XC7Z020 多网口 FPGA开发板

01、产品概述 此款开发板使用的是Xilinx公司的Zynq 7000系列的芯片&#xff0c;型号为XC7Z020-2CLG484I&#xff0c;5 路千兆以太网接口&#xff0c;支持多网口高速数据交换数据处理存储&#xff0c;视频传输处理以及工业控制等。内核 CPU搭载双核 ARM CORTEX-A9&#xff1b;在…

手把手教你绘画原型图:Axure的安装使用

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师&#xff0c;大模型&#xff0c;爬虫、ACM算法 &#x1f492; 公众号&#xff…