2.6c语言 判断素数

news2024/10/6 20:29:44

试除法(2--a-1)

判断一个数是否是素数,素数是只能被1或者他本身整除的数(1不是素数),可以通过循环遍历从2--a-1所有数,看有没有数能够被他整除,从而去判断他是不是素数.

代码部分

#include<stdio.h>
int main()
{
    int arr[10]={2,3,4,5,66,77,567,2553,3456,4436};
    int flag=0;
    for(int i=0;i<10;i++)
    {
        if(arr[i]==2)
        {
            flag=0;
        }else if(arr[i]==1)
        {
            flag=1;
        }
        for(int j=2;j<arr[i]-1;j++)
        {
            if(arr[i]%2==0)
            {
                flag=1;
                break;
            }
        }
        if(flag==1)
        {
            printf("%d不是素数\n",arr[i]);
        }else
        {
            printf("%d是素数\n",arr[i]);
        }
    }
    return 0;
}

运行结果

优化(2-a/2)

将此行for(int j=2;j<arr[i]-1;j++)改为for(int j=2;j<arr[i]/2;j++),效果也能达到

再优化(去除偶数)

偶数能被2整除,必不是素数, 可以在循环前加一个判断,筛选出奇数,

#include<stdio.h>
int main()
{
    int arr[10]={2,3,4,5,66,77,567,2553,3456,4436};
    int count=0;
    for(int i=0;i<10;i++)
    {
        if(arr[i]==2)
        {
            flag=0;
        }else if(arr[i]==1)
        {
            flag=1;
        }
        if(arr[i]%2!=0)
        {
            for(int j=2;j<arr[i]/2;j++)
            {
                if(arr[i]%2==0)
                {
                    count=1;
                    break;
                }
            }
            if(count==1)
            {
                printf("%d不是素数\n",arr[i]);
            }else
            {
                printf("%d是素数\n",arr[i]);
            }
        }
        
    }
    return 0;
}

运行结果

再再优化(到其平方根)

最常用的优化策略是只试除到待判断数的平方根即可。这是因为,如果待判断数不是素数,那么它必定有一个小于等于其平方根的因子。因此,我们只需要试除到平方根即可确定待判断数是否为素数。

将for(int j=2;j<arr[i]/2;j++)改为for(int j=2;j<sqrt(arr[i]);j++)(在头文件math.h中声明)

注意,2是最小的素数,别漏了

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

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

相关文章

Vue安装与配置

写入借鉴网址&#xff1a;好细的Vue安装与配置_vue配置-CSDN博客 下载Vue安装地址&#xff1a; Node.js — Download 查看是否安装成功&#xff1a; node -v npm -v 配置全局模式及缓存 结果通过&#xff1a; C:\Windows\system32>npm install vue -g added 20 packages …

ElasticSearch查询语句用法

查询用法包括&#xff1a;match、match_phrase、multi_match、query_string、term 1.match 1.1 不同字段权重 如果需要为不同字段设置不同权重&#xff0c;可以考虑使用bool查询的should子句来组合多个match查询&#xff0c;并为每个match查询设置不同的权重 {"query&…

C++类和对象入门(三)

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 前言 在c中&#xff0c;类型分为两类&#xff0c;一类是内置类型&#xff0c;另一类是自定义类型。 1.内置类型&#xf…

最适合入门的100个深度学习项目

&#x1f6a8;注意&#x1f6a8;&#xff1a;最近经粉丝反馈&#xff0c;发现有些订阅者将此专栏内容进行二次售卖&#xff0c;特在此声明&#xff0c;本专栏内容仅供学习&#xff0c;不得以任何方式进行售卖&#xff0c;未经作者许可不得对本专栏内容行使发表权、署名权、修改…

亲测解决vscode的debug用不了、点了没反应

这个问题在小虎登录vscode同步了设置后出现,原因是launch文件被修改或删除。解决方法是重新添加launch。 坏境配置 win11 + vscode 解决方法 Ctrl + shift + P,搜索debug添加配置: 选择python debugger。 结果生成了一个文件在当前路径: launch内容: {// Use Int…

MySQL篇----第十篇

系列文章目录 文章目录 系列文章目录前言一、MyISAM Static 和 MyISAM Dynamic 有什么区别?二、如果一个表有一列定义为 TIMESTAMP,将发生什么?三、你怎么看到为表格定义的所有索引?四、LIKE 声明中的%和_是什么意思?五、列对比运算符是什么?前言 前些天发现了一个巨牛…

zabbix配置邮箱告警

1.监控nginx服务状态 2.创建触发器 触发器条件&#xff1a;当服务状态的值为0时&#xff0c;进行邮箱告警 3.配置邮件告警 本次使用qq邮箱进行告警 点击右边的测试&#xff0c;进入到qq邮箱查看消息。 4.为用户添加报警媒介 5.创建动作 6.现在尝试关闭nginx服务&#xff0c;…

【办公自动化】Python执行Windows命令

第一部分&#xff1a;引言 在Python中&#xff0c;我们可以使用os模块来执行Windows命令。os模块提供了许多与操作系统交互的函数&#xff0c;包括执行系统命令。以下是一个简单的示例&#xff0c;展示了如何使用Python执行Windows命令。 第二部分&#xff1a;导入os模块 首…

探索PostgreSQL:从基础到实践(简单实例)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 下载前言一、PostgreSQL是什么&#xff1f;二、使用步骤1.引入库2.读入数据 总结 下载 点击下载提取码888999 前言 在当今的大数据时代&#xff0c;数据库作为信…

06 MP之自动填充+SQL执行的语句和速度分析

1. 自动填充 在项目中有一些属性&#xff0c;比如常见的创建时间和更新时间可以设置为自动填充。 1.1 实例 需求: 将创建时间和更新时间设置为自动填充, 这样每次插入数据时可以不用理会这两个字段 1.1.1 在数据库增加字段 默认开启驼峰映射 createTime --> create_time…

10英寸安卓车载平板电脑丨ONERugged车载工业平板:解决农业工作效率

农业是人类社会的基石之一&#xff0c;而农业工作效率的提升一直是农民和农业专业人士关注的重要议题。随着技术的不断进步&#xff0c;车载工业平板成为了解决农业工作效率的创新解决方案。本文将探讨车载工业平板如何为农业带来巨大的改变&#xff0c;提高农民的工作效率和农…

IntelliJ 跨数据源导入数据迁移

有这么一个需求&#xff0c;我们需要把服务器上一个测试表中的输入导入到本地的数据库中。 IntelliJ 已经设置了 2 个数据源。 我们可以通过 IntelliJ 的数据迁移工具在 2 个数据源中进行迁移。 找到需要导出的表 首先我们需要找到需要导出的表&#xff0c;然后从表中选中导…

Unix五种I/O模型(阻塞、非阻塞、多路复用、信号驱动、异步)

文章目录 概要一、I/O基础二、阻塞式I/O三、非阻塞式I/O三、I/O多路复用四、信号驱动I/O五、异步I/O六、小结 概要 在工作中&#xff0c;经常使用Nginx、Redis等开源组件&#xff0c;常提到其高性能的原因是网络I/O的实现是基于epoll&#xff08;多路复用&#xff09;。这次呢…

第1节、电路连接【51单片机+L298N步进电机系列】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;本节介绍如何搭建一个51单片机L298N步进电机控制电路&#xff0c;所用材料均为常见的模块&#xff0c;简单高效的方式搭建起硬件环境。 一、硬件清单 ①51单片机模块 ②恒流模块 ③开关电源 ④L298N模…

JDWP 协议及实现

什么是JDWP &#xff1f; JDWP 是 Java Debug Wire Protocol 的缩写&#xff0c;它定义了调试器&#xff08;debugger&#xff09;和被调试的 Java 虚拟机&#xff08;target vm&#xff09;之间的通信协议。 JDWP 协议介绍 这里首先要说明一下 debugger 和 target vm。Target …

centos 7.6 安装 openldap 2.5.17

centos 7.6 安装ldap 1、下载ldap2、安装ldap2.1、官方参考文档2.2、安装前准备2.2.1、安装gcc2.2.2、安装Cyrus SASL 2.1.272.2.3、安装OpenSSL 1.1.12.2.3.1、下载openssl 3.02.2.3.2、安装依赖包2.2.3.3、编译安装openssl 3.0 2.2.3、安装libevent 2.1.82.2.4、安装libargon…

发送get请求并且发送请求头(header),java实现

发送get请求时&#xff0c;发送请求头&#xff08;Header&#xff09;中的内容 方便第二次调用其他url时传递参数&#xff0c;例如userCode或者租户编码 调用方式 Autowired private HttpServletRequest request;先注入HttpServletRequestpublic xxx xxx(){String url &quo…

SpringBoot集成axis发布WebService服务

文章目录 1、使用maven-web项目生成server-config.wsdd文件1.1、新建maven-web项目1.1.1、新建项目1.1.2、添加依赖 1.2、编写服务接口和实现类1.2.1、OrderService接口1.2.2、OrderServiceImpl实现类 1.3、配置deploy.wsdd文件deploy.wsdd文件 1.4、配置tomcat1.4.1、配置tomc…

基于springboot+vue+mysql员工宿舍管理系统

直达视频演示 技术栈 jdk8springboot vueelement-plusMySQL 包含功能点 管理员端 登录员工管理宿舍管理留言板管理物品报修管理公告管理 员工端 登录首页个人中心物品报修留言板 功能截图(部分) 管理员 管理员登录 员工管理 宿舍管理 物品报修管理 公告管理 留言管理 …

火山引擎ByteHouse:如何为OLAP设计高性能向量检索能力?

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 背景 随着 LLM 技术应用及落地&#xff0c;数据库需要提高向量分析以及 AI 支持能力&#xff0c;向量数据库及向量检索等能力“异军突起”&#xff0c;迎来业界持续…