【NC14399】素数判断

题目

素数判断

分解质因数

思路

题目很直接,给你一个数,判断其是不是素数,如果是,输出一句话和它本身,如果不是,输出一句话和它的质因数,需要注意的是质因数要从小到大输出。

我们知道,一个素数的质因数就是它本身,所以抛开素数判断,直接对一个数分解质因数就行了。

怎么对一个数分解质因数呢?

可以使用试除法来实现。对于一个大于 1 1 1 的正整数 n n n,如果 n n n 能被 [ 2 , s q r t ( n ) ] [2, sqrt(n)] [2,sqrt(n)] 范围内的任何整数整除,则将因子加入列表,直到 n = 1 n=1 n=1 或者因子的枚举值超出上述范围为止。

然后可以根据得到的质因数列表来判断一个数是不是素数

很直观,如果列表里面只有一个数,那么这个数肯定是素数,否则不是素数

需要注意的是以上的方法得到的质因数列表包含了重复的质因数,所以在输出的时候要加以判断。

代码

#include <iostream>
#include <vector>
using namespace std;/*** @brief 分解质因数** @param x 待分解的数* @return vector<int> 质因数列表*/
vector<int> prime_factors(int x) {vector<int> res;int d = 2;while (x > 1) {while (x % d == 0) {res.emplace_back(d);x /= d;}d++;if (x > 1 && d * d > x) {res.emplace_back(x);break;}}return res;
}int main(void) {int t = 0, x = 0, k = 0, i = 0;cin >> t;vector<int> tmp;while (t--) {cin >> x;tmp = std::move(prime_factors(x));cout << ((k = tmp.size()) == 1 ? "isprime" : "noprime") << endl;cout << tmp[0];for (i = 1; i < k; i++) {if (tmp[i] != tmp[i - 1]) {cout << " " << tmp[i];}}cout << endl;}return 0;
}

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

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

相关文章

蓝桥杯第 6 场 小白入门赛 2.猜灯谜(for + 数组)

思路&#xff1a;注意是环形排列的灯笼&#xff0c;它的谜底是相邻两个灯笼的数字之和。这道题要用到两个数组&#xff0c;ans存答案&#xff0c;a存原数据。数据读入部分就不用说了&#xff0c;重点就是单独写明ans[0]和ans[n-1]两个取值&#xff0c;其他的用for循环数组就可以…

数据结构——栈和队列的表示与实现详解

目录 1.栈的定义与特点 2.队列的定义与特点 3.案例引入 4.栈的表示和操作的实现 1.顺序栈的表示 代码示例&#xff1a; 2.顺序栈的初始化 代码示例&#xff1a; 3.判断栈是否为空 代码示例&#xff1a; 4.求顺序栈长度 代码示例&#xff1a; 5.清空顺序栈 …

如何实现图片上传至服务器

在绝大多数的项目中都会涉及到文件上传等&#xff0c;下面我们来说一下技术派中是如何实现原生图片上传的&#xff0c;这个功能说起来简单&#xff0c;但其实对于技术还是有考验的。图片的上传涉及到IO读写&#xff0c;一个文件上传的功能&#xff0c;就可以把IO流涉及到的知识…

PyTorch学习笔记之激活函数篇(六)

6、RReLU函数 对应的论文链接&#xff1a;https://arxiv.org/pdf/1505.00853.pdf 6.1 公式 RReLU函数的公式&#xff1a; f ( x ) { x , x > 0 α x , x < 0 f(x) \begin{cases} x&,x>0 \\ \alpha x&,x<0 \end{cases} f(x){xαx​,x>0,x<0​ …

rust - 一个日志缓存记录的通用实现

本文给出了一个通用的设计模式&#xff0c;通过建造者模式实例化记录对象&#xff0c;可自定义格式化器将实例化后的记录对象写入到指定的缓存对象中。 定义记录对象 use chrono::prelude::*; use std::{cell::RefCell, ffi::OsStr, fmt, io, io::Write, path::Path, rc::Rc,…

✅技术社区—通过Canal框架实现MySQL与ElasticSearch的数据同步

Canal 是一个由阿里巴巴开源的&#xff0c;基于 Java 的数据库变更日志解析的中间件&#xff0c;其原理是基于Binlog订阅的方式实现&#xff0c;模拟一个MySQL Slave 订阅Binlog日志&#xff0c;从而实现CDC&#xff0c;主要用于实现 MySQL 数据库的增量数据同步。它主要的使用…

模块化项目Eclipse测试网零撸教程

简介&#xff1a;Eclipse 是一个基于 Solana 区块链的初创项目&#xff0c;致力于构建基于 Solana 虚拟机的通用 Layer2 解决方案&#xff0c;为以太坊提供更快速、更通用的 Rollup 技术。其主要用途是为开发者提供构建基于 Solana 虚拟机的 Rollup 应用的平台&#xff0c;解决…

Vue3-响应式基础:单文件和组合式文件

单文件&#xff1a;html <!DOCTYPE html> <html> <head><title>响应式基础</title> </head> <body><div id"app" ><!-- dynamic parameter:同样在指令参数上也可以使用一个 JavaScript 表达式&#xff0c;需要包…

企业微信H5文件下载。

废话不多说&#xff0c;直接上代码。 1.判断是不是企业微信打开的 const ua navigator.userAgent.toLowerCase() if (/micromessenger/.test(ua)) {} 2.复制功能 navigator.clipboard.writeText(newsUrl).then(() > {this.$message({message: 您已复制文件链接&#xff…

leetcode513找树左下角的值

解法1&#xff1a;BFS 思路就是层序遍历 用队列记住每层的元素&#xff0c;如果每次记住每层的第一个元素 ---->https://programmercarl.com/0102.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E5%B1%82%E5%BA%8F%E9%81%8D%E5%8E%86.html#_102-%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A…

微调大型语言模型(LLM):应用案例示例

微调大型语言模型&#xff08;LLM&#xff09;&#xff1a;应用案例示例 摘要&#xff1a; 本文讨论了大型语言模型&#xff08;LLM&#xff09;的微调&#xff0c;这是一种通过少量数据训练已经预训练好的模型以执行特定任务的过程。微调可以让LLM在翻译、文本分类、文本生成…

SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)

文章目录 1.整合MyBatis1.需求分析2.数据库表设计3.数据库环境配置1.新建maven项目2.pom.xml 引入依赖3.application.yml 配置数据源4.Application.java 编写启动类5.测试6.配置类切换druid数据源7.测试数据源是否成功切换 4.Mybatis基础配置1.编写映射表的bean2.MonsterMapper…

从零到一构建短链接系统(五)

1.修改UserService Service public class UserServiceImpl extends ServiceImpl<UserMapper, UserDO> implements UserService {public UserRespDTO getUserByUsername(String username) {LambdaQueryWrapper<UserDO> queryWrapper Wrappers.lambdaQuery(UserDO.c…

MySQL实战:监控

监控指标 性能类指标 名称说明QPS数据库每秒处理的请求数量TPS数据库每秒处理的事务数量并发数数据库实例当前并行处理的会话数量连接数连接到数据库会话的数量缓存命中率Innodb的缓存命中率 功能类指标 名称说明可用性数据库是否正常对外提供服务阻塞当前是否有阻塞的会话…

HarmonyOS-鸿蒙系统概述

你了解鸿蒙系统吗&#xff1f; 你看好鸿蒙系统吗&#xff1f; 今年秋季即将推出的HarmonyOS Next 星河版热度空前&#xff0c;一起来了解一下吧。本文将从HarmonyOS 的应用场景、发展历程、架构、开发语言、开发工具、生态建设六个角度聊一聊个人的理解。 1、应用场景 鸿蒙…

Sora提示词与视频创作的融合(一):创意启发:利用提示词激发创作灵感

在Sora模型的创作中&#xff0c;利用提示词激发创作灵感是一个至关重要的环节。提示词作为引导模型生成视频内容的关键因素&#xff0c;不仅能够指导模型按照特定的主题和风格生成内容&#xff0c;还能够激发创作者的灵感&#xff0c;推动创意的产生。下面将详细探讨如何利用提…

深度学习pytorch——拼接与拆分(持续更新)

cat拼接 使用条件&#xff1a;合并的dim的size可以不同&#xff0c;但是其它的dim的size必须相同。 语法&#xff1a;cat([tensor1,tensor2],dim n) # 将tensor1和tensor2的第n个维度合并 代码演示&#xff1a; # 拼接与拆分 a torch.rand(4,32,8) b torch.rand(…

多线程JUC 第2季 wait和notify唤醒机制

一 wait和notify的区别与相同 1.1 wait和notify的作用 1) 使用wait()、notify()和notifyAII()时需要先对调用对象加锁。否则直接调用的话会抛出 IllegalMonitorStateExceptiona。 2) 调用wait()方法后&#xff0c;线程状态。由RUNNING变为WAITING&#xff0c;并将当前线程放置…

无人机是如何进行开发的

无人机开发涉及多个方面&#xff0c;包括硬件设计、软件开发、飞行控制算法等。以下是一个简化的无人机方案开发流程&#xff1a; 需求分析&#xff1a;明确无人机的功能、性能要求和应用场景。硬件选择&#xff1a;选择合适的飞控系统、传感器&#xff08;如陀螺仪、加速度计…

Runnable 和 Callable 的区别?什么是 Callable 和 Future?什么是 FutureTask?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 Runnable 和 Callable 的区别 Runnable接口适用于那些不需要返回结果的任务,而Callable接口适用于需要返回结果的任务,并且可以抛出受检异常。Runnable接…