问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何写一个求n-m之间的全部素数的程序

发布网友 发布时间:2022-07-24 08:56

我来回答

4个回答

热心网友 时间:2023-10-08 23:18

#include <iostream>

using namespace std;

#include <math.h>                //此为数学函数库。程序中要用到数学函数时必须包含此语句。

int f(int n)                    //此函数只判断是否为素数。

{

 int i,j=0;

 for(i=2;i<=sqrt(n);i++)     //这是使程序运算次数最少的方法,若将sqrt(n)换成n/2,

                          //程序运算次数将要增加,若换成n,运算量最大,也最浪费。

        //另外,若i=1,显然不满足,故直接i=2。

        if(n%i==0)

         j++;                //j在这里只起标识作用,若为0不变则说明是素数,否则为非素数。

        

         if(j==0) 

          return 1;

         else

          return 0;

        

}

int main()

{

 int i,n,m;

 cout<<"请输入正整数n和m(0<n<m):"<<endl;

 cin>>n>>m;

 cout<<n<<"到"<<m<<"之间的素数为:"<<endl;

 for (i=n;i<=m;i++)

 {

  if(f(i))

  {

   cout<<i<<" ";

  }

 }

 cout<<endl;

 return 0;

}

热心网友 时间:2023-10-08 23:19

#include <iostream>
using namespace std;

int main()
{
int a[210000];
int i,j,m,n;
cout<<"please input the range: m,n"<<endl;
cin>>m>>n;
for (i=1;i<=n;i++)
a[i]=0;
i=2;
while (i<=n/2+1)
{
if (!a[i])
{
for (j=2;j<=n/i+1;j++)
{
if (i*j<=n) a[i*j]=1;
//将素数i的倍数都标记成合数;
//当a[x]=1时,x为合数;a[x]=0表示x为素数或未判断。
}
}
i++;
while (a[i]) i++;
//移动指针到下一个素数。

}
for (i=m;i<=n;i++)
{
if (!a[i])
//当a[x]=1时,x为合数;a[x]=0表示x为素数。
{
cout<<i<<' ';
}
}
return 0;
}
/*
筛选法求素数:
①将所有候选数放入筛中;(数组a)
②找筛中最小数(必为素数)i;
③将next的所有倍数从筛中筛去;
④重复②~④直到筛空。

如果按照基本方法,对每一个数m,把i从2到sqrt(m)+1来判断i是否是m的约数,最后判断m是否素数的话,当数据到200000的时候,仅处理(仅判断而不输出)就需要5s以上的时间,而采用了筛选法,数据量在200000的时候,不输出的话可以实现秒出。
*/

热心网友 时间:2023-10-08 23:19

我只会qb

input n,m
for i= n to m
for k=2 to sqr(i)
if i mod k=0 then print i
next k
next i

参考资料:我也是干这一行的!

热心网友 时间:2023-10-08 23:20

c++?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
啤酒肚能减下去吗 一个礼拜怎么减掉啤酒肚 Win10桌面便签小工具怎么添加?一招轻松搞定! win10好用的桌面便签 手机便签APP哪个好用 桌面便签备忘录怎么添加设置? 郑州科技学院王牌专业排名一览表 跳用英语怎么说你知道该如何正确使用吗? jump基本要点 郑州科技学院视觉传达怎么样 郑州科技学院报的视觉传达专业,进入大学后能转专业么 求m与n之间素数个数 c语言问题 求从n到m的所有素数 C语言 输出n到m之间的所有素数 输入2 个正整数m和n(1&lt;=m,n&lt;=500),统计并输出m 和n之间的素数的个数以及这些素数的和。 输入2个正整数m和n(m&gt;=1,n&lt;=500),统计并输出m和n之间的素数个数以及这些素数的和。 新龙族战斗技能书获得途径? 新龙族新在哪里? 新龙族多少级可以组队 新龙族怎么升级快 新龙族玩法 关于新龙族的基本工作问题 新龙族和龙族是一样的吗 新龙族边境杀多少人才有声望 画数轴的步骤是什么,有那些要素,如何确? 小学数学是如何利用直线上的点表示正数和零 六年级在直线上表示数数轴上还有下面没有标数还标吗 在用直线上的点表示数时,应先确定好( )的位置,并要规定哪个方向是正方... 在直线上表示数时一般先确定什么再确定什么最后确定什么? ab胶水能粘pvc水管接头吗? pvc管ab胶可以粘得牢吗 c语言习题 求n到m之间所有的素数及其总数 C语言 求n到m之间所有的素数 不要着急,不要着急,休息,休息一会儿&quot;是哪个日本动画片人物的台词_百度... 世上本无事,何必惹尘埃。下句怎么回答 混凝土回弹值 社会保险及住房公积金 酸奶蛋糕口感发涩 身份证号上是422123是哪个省县市 身份证的前6位422123代表什么意思,是哪个省市区县的代码? 422123是哪个地区的身份证编码开头 为啥湖北红安县居民身份证三四位数有人不一样? 湖北省黄冈市的编号 420123开头的身份证是哪里的人 293影视终身会员靠谱吗 293影视密码忘了怎么办 293影院怎么那么卡 C语言代码问题:求解 纪梵希小鹿斑比双肩包是什么材质? 纪梵希小鹿斑比正品价格是多少 纪梵希小鹿斑比材质