首页 > 其他分享 >101到200的质数

101到200的质数

时间:2023-04-23 22:13:03浏览次数:36  
标签:200 int 质数 bool 整除 101 find

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。

我们设定一个数为x,根据质数的定义判断x是否为质数,我们看它能否被2、3、4······、x-1整除,如果它不能被其中任何一个整数整除,则这个数就是质数。

思路就是 先判断一个数是不是质数,再去拓展。

先说一下错误写法

bool find(int n)
{
    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
            return false;
    }
    return true;
}

这种是错误的,可能会出现bug

bool find(int n)
{
    int sql=(int)sqrt(1.0*n); 
    for(int i=2;i<=sql;i++)
    {
        if(n%i==0)
            return false;
    }
    return true;
}

这种写法是正确的,可以判断一个数是不是质数

完整的程序就是

#include<iostream>
#include<math.h>
using namespace std;
int main()
{//如果整数x为质数,那么就不可能写成 x = a * b的形式。所以如果整数x无法被小于等于x的平方根的质数整除,则x为质数。
    bool flag = true;
    int count = 0;//这定义的是质数的量
    for (int i = 101; i <= 200; i++)
    {
        for (int j = 2; j <= sqrt(i); j++)//sqrt()用来求指定数的平方根,例如我们要判断一个数是不是质数,只需要判断 2 ~ n开根号 之间有没有可以整除的数就可以了
        {//这里是j从2开始,一直找,其实也就是j*j<=i,用元素平方去排查
            if (i % j == 0)//找到了
            {
                flag = false;
                break;//跳出循环
            }
        }
        if (flag)
        {
            count++;//找到后count就会+1
            cout << "  " << i << "  ";//输出这个质数
        }
        flag = true;
    }
    cout << "  " << "总数为:" << count;
    system("pause");
    return 0;
}

 

标签:200,int,质数,bool,整除,101,find
From: https://www.cnblogs.com/lllyclh/p/17347907.html

相关文章

  • 给虚拟机win2003装DNS插件出现问题
    已经配置给2003配置好ip地址和子网掩码了,安装DNS插件的时候报下面错误 有个红叉没法用 重启一下虚拟机就好了,可能是之前配置ip的时候和其他虚拟机重名了,我改了之后还有缓存。(还可以恢复快照或者重装一下虚拟机) ......
  • 多校第六场 1011 hdu 5363Key Set(组合数学)
    题目链接:hdu5363题目大意:给出一个到n的自然数集合,问它有多少个子集,元素之和是偶数。题目分析:首先偶数不会导致集合的和的奇偶性发生变化;奇数会导致集合的和的奇偶性发生变化。我们设奇数m1个,偶数m2个。所以我们可以选取0~m1个偶数,但是只能选取偶数个奇数。那么偶数的方案数就是......
  • hdu 5446 长春区域赛网络赛1010 Unknown Treasure(lucas定理+中国剩余定理+移位乘法)
    题目链接:hdu5446题目大意:求出Cmn%M,M=p1⋅p2⋯pk题目分析:首先对于每个质数pi我们,我们可以利用Lucas定理求出Cmn%pi的值,Lucas定理如下:Cmn%p=Cm/pn/p⋅Cm%pn%p%p然后我们可以利用中国剩余定理求取最后答案:M=∏i=1kpi,Mi=M/piCmn%M=∑i=1kCmn%pi⋅Mi⋅inv[Mi]因为做乘法......
  • UVA11014
     给定一个NxNxN的正方体,求出最多能选几个整数点。使得随意两点PQ不会使PQO共线。  F(k)#include<iostream>#include<cmath>#include<algorithm>usingnamespacestd;constintN=5e5;#defineintlonglongintb[N+2],pm[N+2],tot=0;intn;intpow3(intx){......
  • ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run
      今天执行mysql操作的时候出现了错误:ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/var/run/mysqld/mysqld.sock'问题1:首先检查是否安装了mysql-server了 sudoapt-getinstallmysql-servertoinstallmysqlonubuntu  sudoapt-getin......
  • [NOIP2009 普及组] 多项式输出
    题目描述一元\(n\)次多项式可用如下的表达式表示:\[f(x)=a_nx^n+a_{n-1}x^{n-1}+\cdots+a_1x+a_0,a_n\ne0\]其中,\(a_ix^i\)称为\(i\)次项,\(a_i\)称为\(i\)次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式:多项式中自变量为\(......
  • leetcode200.岛屿数量
    title:leetcode200.岛屿数量题目描述:给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例1:输入:grid=[["1","1","1","......
  • SQL2000修改sa密码时提示【错误2812:未能找到储存过程’sp_passwoed’】的解决方法
    1.在用SQL2000数据库经常会遇见忘记sa密码,需要修改sa密码,但是有时候修改sa密码时会提示  错误2812:未能找到储存过程’sp_passwoed’2.遇到这种情况的解决方法是:打开开始菜单,找到SQLServer的程序组,选择运行程序组中的“查询分析器”,打开 3.打开“查询分析器”后会有一个......
  • 输出100-200之间所有的质数
    输出100-200之间所有的质数<script>lettotal=0;//计数器for(leti=100;i<200;i++){letnum=true;for(letq=2;q<i;q++){if(i%q==0)/*余数为零,能被整除*/{n......
  • 打印出1000-2000年中所有的闰年,并以每行四个数的形式输出
    打印出1000-2000年中所有的闰年,并以每行四个数的形式输出<script>varnum=0; //定义一个计数器for(letyear=1000;year<=2000;year++){if(year%4===0&&year%100!==0||year%400===0){document.......