Codeforces Round #615 (Div. 3) C. Product of Three Numbers

news/2024/11/23 22:58:12/

C. Product of Three Numbers

time limit per test2 seconds
memory limit per test256 megabytes
inputstandard input
outputstandard output
You are given one integer number n. Find three distinct integers a,b,c such that 2≤a,b,c and a⋅b⋅c=n or say that it is impossible to do it.

If there are several answers, you can print any.

You have to answer t independent test cases.

Input
The first line of the input contains one integer t (1≤t≤100) — the number of test cases.

The next n lines describe test cases. The i-th test case is given on a new line as one integer n (2≤n≤109).

Output
For each test case, print the answer on it. Print “NO” if it is impossible to represent n as a⋅b⋅c for some distinct integers a,b,c such that 2≤a,b,c.

Otherwise, print “YES” and any possible such representation.

Example
inputCopy
5
64
32
97
2
12345
outputCopy
YES
2 4 8
NO
NO
NO
YES
3 5 823

题意:

给一个数n(n<=1e9),如果能分解成abc==n(a,b,c>=2且不相等),输出YES,并且输出任意一个方案;反之输出NO;

思路:

三个不相同的数乘积为n,那么这三个数一定是n的因子;把n进行算数质因子分解,判断是否有三个不一样的因子;

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
map<ll,int> mp;
ll pre[10010];
int main()
{int t;cin>>t;while(t--){mp.clear();//记得清空ll n;cin >>n;int cot=0;ll m=n;for(int i=2;i<=m/i;i++)//分解质因子并且记录每个质因子出现的次数{if(m%i==0) pre[cot++]=i;while(m%i==0){mp[i]++;m/=i;}}if(m>1) pre[cot++]=m,mp[m]++;if(cot==1)//当只有一个质因子的时候{if(mp[pre[0]]>=6){cout <<"YES"<<endl;printf("%lld %lld %lld\n",pre[0],pre[0]*pre[0],n/(pre[0]*pre[0]*pre[0]));//	cout <<mp[pre[0]]<<endl;}else cout <<"NO"<<endl;}else if(cot==2){if(mp[pre[0]]+mp[pre[1]]>=4){cout <<"YES"<<endl;printf("%lld %lld %lld\n",pre[0],pre[1],n/(pre[0]*pre[1]));}else cout <<"NO"<<endl;}else//如果有三个及以上的质因子存在那么就一定可以{cout <<"YES"<<endl;printf("%lld %lld %lld\n",pre[0],pre[1],n/(pre[0]*pre[1]));}}}

http://www.ppmy.cn/news/534456.html

相关文章

rk3588s编译问题

编译环境为Ubuntu16.04 server 1、/u-boot/scripts/fit.sh: line 615: fdtget: command not found 需安装"fdtget" apt-get install device-tree-compiler 2、/bin/sh: : lz4c: not found make[]: *** [arch/arm64/boot/Image.lz4] error make: *** [Imag…

基于ssm的蛋糕商城系统(源代码+数据库+带6000字报告)615

部分代码地址 https://gitee.com/ynwynwyn/cakeShop-public 基于ssm的蛋糕商城系统&#xff08;源代码数据库带1万字报告&#xff09; 一、系统介绍 本项目分为前后台&#xff0c;分为管理员与普通用户两种角色&#xff0c;管理员登录后台&#xff0c;普通用户登录前台&…

Codeforces Round #615 (Div. 3)(题解)

写在前面&#xff1a; 可惜了&#xff0c;如果做出第四道&#xff0c;应该可以直接回青名的&#xff0c;这次前三道的手感都不错&#xff0c;可惜第四道没做出&#xff0c;思路都想对了&#xff0c;但是没写出来。 祝大家新年快乐&#xff01;&#xff01;&#xff01; A. Col…

【博客615】通过systemd设置cgroup来限制服务资源争抢

通过systemd设置cgroup来限制服务资源争抢 1、场景 我们的宿主机上通常会用systemctl来管理一些agent服务&#xff0c;此时我们需要限制服务的cpu&#xff0c;memory等资源用量&#xff0c;以防止服务之前互相争抢资源&#xff0c;导致某些核心agent运行异常 2、systemd与cgro…

【LeetCode-SQL】615. 平均工资:部门与公司比较

一、题目 给如下两个表&#xff0c;写一个查询语句&#xff0c;求出在每一个工资发放日&#xff0c;每个部门的平均工资与公司的平均工资的比较结果 &#xff08;高 / 低 / 相同&#xff09;。 表&#xff1a; salary | id | employee_id | amount | pay_date | |----|---…

615_AUTOSAR_RS_Features阅读_操作系统部分

全部学习汇总&#xff1a; https://github.com/GreyZhang/hack_autosar 继续看《AUTOSAR_RS_Features》&#xff0c;这份文档一共86页&#xff0c;应该可以在3天以内看完。今天是第二天了&#xff0c;看一下我算是有一点熟悉的操作系统。 需要兼容OSEK&#xff0c;主要的考量应…

【学习笔记】广和通4G模块-MC615学习笔记

目录&#xff1a; 1.简介1.1 网络制式1.2 传输速率1.3操作系统 2. 硬件介绍2.1 控制信号2.2 开关机 3.开发方式3.1固件定制部分3.1.2多路复用3.1.3工作模式3.1.4LPG指示灯 3.2AT方案3.2.1一些常用AT指令3.2.2 升级方案3.2.3 休眠方案前置条件 3.2.4 休眠方式3.2.5 唤醒3.2.6上报…

[晕事]今天做了件晕事14,查单词charp

从内核模块的代码里看到一个单词charp&#xff0c;去尝试查单词&#xff0c;发现了一个 Charp impact value 【机】 夏比冲击值 这个直接是音译&#xff0c;肯定不是想要的&#xff0c; 后来使用bing搜索引擎&#xff0c;里面有一个链接&#xff1a; 这个网页真是很有迷惑性&am…