.LAL. 2022-07-18 17:17 采纳率: 95%
浏览 240
已结题

c++求解素数个数。

输入两个正整数X和Y,输出两者之间的素数个数(包括X和Y)。
输入两个正整数X和Y,输出两者之间的素数个数(包括X和Y)。
1 100
25
这是代码:
#include<bits/stdc++.h>
using namespace std;
bool ss(int i)
{
if(i==1)return false;
int j;
for(j=2;j*j<=i;j++)
{
if(i%j==0)return false;
}
else return true;
}
int main(){
int x,y,a=0;
cin>>x>>y;
for(int i=x;i<=y;i++)
{
if(ss(i)==true)a++;

}
cout<<a;
return 0;
}
有人能一步步解释一下每一步的意思吗,不太懂求素数的方法

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-07-18 17:24
    关注

    函数ss就是判断输入的i是否为素数
    所谓素数,就是某个整数,不能被从2到该数-1之内所有整数整除的数
    比如7,不能被2-6整除,所以是素数
    比如15,能被3和5整除,所以不是素数
    代码中循环为for(j=2;j*j<=i;j++)
    这里用平方和小于i作为结束标志,比如9,如果逐个判断2-8是否能整除,就需要判断7次。但实际只需要判断2-3就可以了,因为4以后即使能整除9,那另一个除数肯定小于4,那么在之前的循环已经判断过了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月13日
  • 已采纳回答 8月5日
  • 创建了问题 7月18日

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题