判断质数-- 试除法判定质数(终于有人给我说明白了)

目录

    • 判断质数
    • 思路:
    • 代码

原题链接

判断质数

给定 n个正整数 ai,判定每个数是否是质数。

输入格式
第一行包含整数 n

接下来 n
行,每行包含一个正整数 ai

输出格式
共 n
行,其中第 i
行输出第 i
个正整数 ai
是否为质数,是则输出 Yes,否则输出 No。

数据范围
1≤n≤100,
1≤ai≤2^31−1
输入样例:
2
2
6
输出样例:
Yes
No

思路:

题主其实之前一直不太明白此类题目的思路
后面又看了y总的解释 终于知道自己的缺陷在那一部分

下面讲解
质数的概念:
质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
如何判断是否为质数?
题主三月份面试的时候 面过这道题 当时还是用的
为什么 i从 2 开始 因为2是最小的质数 小于二的不是质数

for(int i =2 ;i<num;i++)
{if(num% i == 0)return false;
}
return true;

显然这样时间复杂度上面肯定不满足
那么需要用到下面这种方式 去大大缩减其时间复杂度

for(int i =2 ;i<num /i;i++)
{if(num% i == 0)return false;
}
return true;

为什么i<num /i 而不是i*i <num?
因为可能出现整数溢出的情况
注意上面的数字范围1≤ai≤2^31−1
为什么用这种方式?
因为如果num 可以整除a 那么如果 num /a =b;
假设a为偏小的数字 那么a的平方就一定小于 num这个数字
所以当 a < num/a的时候 表示这个范围内可能满足它不是质数的条件
再继续往后遍历没有必要 ?
因为再遍历可能就会出现 b
用 num%b的情况 已经用num%a 来排除了 如果a满足那么b肯定也满足 所以不用再继续遍历
以上为核心思路

在这里插入图片描述
这是思路 当时看此题解并不理解途中的题解:
后面发现是自己的整数概念弄反了

代码

#include<iostream>using namespace std;bool isprime(int num)
{if(num <2) return false;for(int i=2; i <= num/i ;i++){if(num%i == 0) return false;}return true;
}int main()
{int n =0;cin>>n;while(n--){int num = 0;cin>>num;if(isprime(num)){printf("Yes \n");}else{printf("No \n");}}return 0;
}

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

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

相关文章

pythroch abaconda 安装 cuda、版本确定、pytorch 安装

一、简述 公司有一个深度学习的项目&#xff0c;身上也没有其他项目&#xff0c;恰好乘着个机会学一下pytorch 和YOLOv8. 1、下载abaconda https://repo.anaconda.com/archive/ 2、安装 环境变量要✔ 其他一直下一步 3、测试 (base) C:\Users\alber>conda -V cond…

如何上传苹果ipa安装包?

目录 引言 摘要 第二步&#xff1a;打开appuploader工具 第二步&#xff1a;打开appuploader工具&#xff0c;第二步&#xff1a;打开appuploader工具 第五步&#xff1a;交付应用程序&#xff0c;在iTunes Connect中查看应用程序 总结 引言 在将应用程序上架到苹果应用…

达梦数据库的使用

文章目录 一、安装程序介绍1.dm管理工具2.dm服务查看器3.数据迁移工具 二、达梦数据库联机备份与还原操作1.配置归档2.备份1.归档备份 3.备份还原 一、安装程序介绍 官网文档&#xff1a;https://eco.dameng.com/docs/zh-cn/faq/faq-import-export.html 达梦数据库安装成功后…

OpenCV4.x(C++)人脸检测(眼睛、侧脸、正脸)

一、前言 OpenCV是一款广泛使用的计算机视觉库&#xff0c;提供了许多强大的功能&#xff0c;包括人脸检测和识别。人脸分类器是OpenCV中用于人脸检测的关键工具之一&#xff0c;能够快速准确地检测出图像中的人脸。 本文将介绍如何使用OpenCV自带的人脸分类器&#xff0c;并…

05- OpenCV:图像操作和图像混合

目录 一、图像操作 1、读写图像 2、读写像素 3、修改像素值 4、Vec3b与Vec3F 5、相关的代码演示 二、图像混合 1、理论-线性混合操作 2、相关API(addWeighted) 3、代码演示&#xff08;完整的例子&#xff09; 一、图像操作 1、读写图像 &#xff08;1&#xff09;…

阿赵UE学习笔记——8、贴图导入设置

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   继续学习虚幻引擎的用法&#xff0c;这次来说一下贴图的导入设置。   在内容浏览器里面可以看到纹理类型的资源&#xff0c;就是贴图了&#xff0c;鼠标悬浮在上面可以看到这个纹理贴图的信息&#xff1a; 双击纹理贴图…

基于ssm文化遗产的保护与旅游开发论文

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自古…

【Python程序开发系列】一文总结程序运行出现No module named ‘xxx‘的解决方案

这是Python程序开发系列原创文章&#xff0c;我的第196篇原创文章。 一、引言 "ModuleNotFoundError: No module named xxx"这个报错是个非常常见的报错&#xff0c;几乎每个python程序员都遇到过&#xff0c;导致这个报错的原因也非常多&#xff0c;解决这个问题之…

原生Camera2中CameraMetadata用法和代码流程详解

1&#xff0c;CameraMetadata介绍 CameraMetadata在Android的Camera2 API中起到了关键的作用。它提供了一种机制&#xff0c;使应用程序能够获取关于相机硬件和其当前状态的元数据。这些元数据包括各种信息&#xff0c;例如相机传感器的状态、镜头的朝向、闪光灯的充电状态、自…

智能AI一键养号,助力账号增加浏览轨迹的全新体验

我想分享一下我对亚马逊鲲鹏系统的智能AI一键养号功能的使用体验。这一创新性的功能让账号的养号过程变得更加轻松、灵活且有效。 首先&#xff0c;我对软件的AI功能页面印象深刻。通过勾选不同的姓名、职业、性别等选项&#xff0c;我可以生成各种不同的AI角色。这些角色使得账…

windows10 装docker和docker compose

一.windows环境准备 开启过程中的问题&#xff0c;进入bios修复 二.docker下载安装 1.下载 Docker Desktop: The #1 Containerization Tool for Developers | Docker 下载最新版有问题&#xff0c;下载老版本试试 Docker Desktop release notes | Docker Docs 2.安装 三.do…

C++11_lambda表达式

文章目录 一、lambda表达式1.lambda的组成2.[capture-list] 的其他使用方法2.1混合捕捉 二、lambda表达式的使用场景1.替代仿函数 总结 一、lambda表达式 lambda表达式是C11新引入的功能&#xff0c;它的用法与我们之前学过的C语法有些不同。 1.lambda的组成 [capture-list] …