您现在的位置是:首页 > 正文

C/C++语言:判断是否是素数

2024-04-01 00:10:22阅读 5

题目:

给出一个大于等于2的正整数 n,判断它是不是一个素数(质数)

注:
1、素数(质数):除了1和它本身之外,没有其他的因数;
2、合数:除了1和它本身之外,还有其他的因数;
3、1既不是质数,也不是合数;

策略:

方法一:
可以从 2 开始一直到(n-1)判断,如果有是 n 的因数,则说明 n 不是素数,反之是素数;
方法二:
不用从 2 到(n-1)判断,只需从 2 到(根号n)判断即可;
明显使用方法二效率更高,所以,这里仅实现方法二

代码

#include<iostream>
#include<cmath>
using namespace std;

bool function(int n){
    if(n == 2 || n == 3)
        return true;
    else{
        for(int i = 2; i <= sqrt(n); i++)//查看从2到(根号n)是否有它的因数
            if(n % i == 0)
                return false;
        return true;
    }
}

变种一:求(m~n)之间的所有素数

//将正整数m~n之间的素数输出
void function(int m, int n){
    for(int i = m; i <= n; i++){
        int flag = 0;//0是,1不是
        for(int j = 2; j <= sqrt(i); j++){
            if(i % j == 0){//不是素数
                flag = 1;//更新
                break;
            }
        }
        if(flag == 0)//是素数
            cout << i << " ";
        else if(flag == 1)//不是
            ;
    }
}


网站文章

  • 使用JavaScript创建和设置HTML表格

    使用JavaScript创建和设置HTML表格

    要在JavaScript中创建和设置HTML表格,您可以使用DOM(文档对象模型)来操作HTML元素。下面是一个示例代码,演示如何使用JavaScript创建一个简单的表格并设置一些样式。您可以根据需...

    2024-04-01 00:10:16
  • 6.工厂模式_2:实现改良版本

    跟汤老师学Java笔记:工厂模式实现改良版本 完成:第一遍 1.工厂模式改良版本如何实现? package designPattern; import java.io.BufferedReader; ...

    2024-04-01 00:09:52
  • linux中通过dbca创建oracle数据库

    linux中通过dbca创建oracle数据库

    本文承接上篇博客,linux中安装oracle数据库1.首先还是一样的,本地的xstar连接上服务器,2.#非常重要,必须在oracle用户下执行这行命令,否则会导致你弹出的安装oracle界面全是框框export LANG=en_US.UTF-8#这边的ip要填你自己安装xstart自己电脑上面的ipexport DISPLAY=192.168.5.108:0.03...

    2024-04-01 00:09:40
  • L1-054 福到了 (15 分)

    “福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N×N 的网格组成的,网格中的元素或者为字符@或者为空格。而倒过来的汉字所用的...

    2024-04-01 00:09:34
  • C#基础(三十八)详细介绍委托、回调:一个类调用另一个类的方法

    一、简介 在基于Prism的MVVM架构中,用到了Socket通信作为Server。SocketClass类定义了单例模式,然后在软件启动的时候,就加载SocketClass并一直监听Client的消息。该消息包行了不同的标志,根据标志值加载不同类的方法。也就是加载View.xaml对应的ViewModel.cs。 那么问题来了,如何加载其他类(ViewModel...

    2024-04-01 00:09:07
  • (Python)文件读取时出现编码报错(一)——已解决

    (Python)文件读取时出现编码报错(一)——已解决

    (Python)文件读取时出现编码报错——已解决

    2024-04-01 00:09:01
  • 初学者之路——————随机粗糙面建模

    蒙特卡罗法又称线性滤波法,基本思想是在频域用功率谱进行滤波,再做逆快速傅立叶变换得到粗糙面的高低起伏。 粗糙面被认为由大量谐波叠加而成,谐波的振幅是独立的高斯随机变量,方差正比于特定波数的功率谱,所以可以用函数来表示一维粗糙面。 由于合成过程的表面长度有限,表面自相关函数不会衰减到0,所以会有振荡现象。因此,在反变换过程中需要进行加窗用来避免边缘效应和谱重叠问题。 如果文章存在问题,欢迎大家指出。

    2024-04-01 00:08:56
  • Zabbix异常-页面加载不出

    Zabbix异常-页面加载不出

    Zabbix异常-页面加载不出 由于机房搬迁,重启服务器之后,想要进入原来的zabbix监控页面,发现老是加载不出来。提示: 检查端口开启状态 正常 尝试获取zabbix页面信息 获取正常 估计还是端口未开放的问题 登录服务器,查看iptables规则 问题来了,所定义的防火墙规则不应该只有这么点,而且貌似也并没有开放80端口 开放80端口 问题很明显,防火...

    2024-04-01 00:08:48
  • scrapy可视化管理工具gerapy学习笔记

    安装和使用的方法见链接https://cuiqingcai.com/4959.html 值得注意的是需要的request版本比较高,如果本机有需要用到低版本的request,最好在虚拟机中安装 总结 一个管理爬虫项目的可视化工具,把项目部署到管理的操作全部变为交互式,相当的直观和方便。但是比起spiderkeeper相比缺少了定时爬虫功能,同时对于爬虫情况的可视化也不够完善。...

    2024-04-01 00:08:23
  • 基于SSM的学生宿舍管理系统|JavaWeb寝室管理系统(附源代码)

    基于SSM的学生宿舍管理系统|JavaWeb寝室管理系统(附源代码)

    JavaWeb宿舍管理系统设计与实现,寝室管理系统 本教程从系统架构模式、技术选型、使用人群分析、功能分析、数据库设计、运行环境搭建、功能演示等几个方面详细说明了基于SSM框架的宿舍(寝室)管理系统的设计与实现。适合作为计算机类毕业设计、课程设计、Java开发入门级项目。

    2024-04-01 00:08:17