求m至n之间的所有素数(编程)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求m至n之间的所有素数(编程)相关的知识,希望对你有一定的参考价值。

输入m,n(1<=m,n<=10000)

输出m,n之间所有素数(请务必用DevC++解答)

样例:
4 10
输出:
5 7

Privately-ownedsubmarineCommand1_Click()

Dimmisanintegerandnisaninteger

IfText1=""orText2=""thenexitSub

M=Text1

N=Text2

ForIequalsmton

KisequaltokplusisprimeofI.

Next,I

Text3=k.

Terminationofthechild

PrivatesubmarineForm_Load()

Text1=""

Text2=""

Text3=""

Terminationofthechild

Thefunctionisprime(n)isaninteger

Is prime is equal to IIf(n >,1,0).

ForI=2tothesquarerootofn

IfnModI=0,thenisprime=0:exit

Next,I

Theendofthefunction

计算方法:

1. 打开visual studio软件,输入菜单“file”-> new -> new project。选择Windows窗体程序,项目名称为“SuShu”。

2.在表单上添加控件:标签控件,文本值为“输入数字判断是否为质数”;输入要判断的素数的文本框控件(tb_inputvalue)。

3.质数属于计算方法。

4.优化设计算法:取消检测间隔,提高程序效率。我们只能判断2和n/2之间的数,然后我们就能知道它是否是质数。

5.获取前100个质数之间的所有质数:从2到100逐一判断,并将它们记录为质数。

6.判断一个数字是否是质数:if(sushu(int32。解析(tb_inputvalue.text))对话框。显示(tb_inputvalue。文本+“isprime”);对话框。显示(tb_inputvalue。文本+“非素数”);。

7.编译并运行程序后,我们输入67来检查它是否是质数。根据执行结果,质数与实际数一致。

参考技术A #include "stdio.h"
#include "math.h"
void main()

int j,k,i,m,n;
scanf("%d%d",&m,&n);
for(j=m;j<=n;j=j++)

k=(int)sqrt(j);
for(i=2;i<=k;i++)
if(j%i==0)
break;
if(i>=k+1)
printf("%d ",j);

本回答被提问者采纳
参考技术B #include
"stdio.h"
#include
"math.h"
void
main()

int
j,k,i,m,n;
scanf("%d%d",&m,&n);
for(j=m;j<=n;j=j++)

k=(int)sqrt(j);
for(i=2;i<=k;i++)
if(j%i==0)
break;
if(i>=k+1)
printf("%d
",j);

参考技术C #include<iostream.h>
#include<math.h>
void main()
int i,m,n;
bool flag = false;
cin>>m>>n;
if(m>n)

int temp =m;
m=n;
n=temp;

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

for(int k=2;k<sart(i);k++)

if(i%k==0)

flag = true;
break;


if(flag == false)

cout<<i<<" ";


cout<<endl;

求100~200之间的素数

首先来说一下素数的定义:只能被1和本身整除的数称为素数。

来看代码:

#include <stdio.h>
main()
{
    int m, i, n=0;       //m表示需要判断的数字, i表示被m除以的数(即为判断数),n记录次数
    for (m=101; m<=200; m=m+2)
    {
        if(n%10==0)printf("\n");  //表示每输出10个数换一行
    for(i=2;i<m;i++)        //此处 i<m 是指被除数应该小于除数,即m应该跟比自己小的数字判断
        if(m%i==0)break;     //当m%i==0时,此时m不为素数了。
    if(i>=m)          //重点理解: i通过前面的if语句循环到m-1时都未能break退出函数,说明此时的m为素数,即i=m时可以输出m的值
       {
        printf("%d\t",m);
        n=n+1;
       }
    }
    printf("\nprime number =%d\n",n);
}

解析代码:   为什么此处是i>=m :

    if(i>=m)          //重点理解: i通过前面的if语句循环到m-1时都未能break退出函数,说明此时的m为素数,即i=m时可以输出m的值
       {
        printf("%d\t",m);
        n=n+1;
       }

  此前已经有一个for循环语句了,当m%i==0时退出当前循环,但是如果能运行到if()语句这里,说明前面没有能使m被整除的数,即m为素数。

届时只需要if(i >= m)成立输出m就行

以上是关于求m至n之间的所有素数(编程)的主要内容,如果未能解决你的问题,请参考以下文章

C语言m~n之间的素数

C语言求助,《求m和n之间的所有素数》

输出[m,n]之间的素数,用c语言编程怎么写。谢谢,

【c#】求1到n之间的所有素数之和.

大一c语言的题目。输出m-n之间所有的素数

1.求100-300间的所有素数,按每行10个数输出,并求出输出怎么做?