求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之间的所有素数(编程)的主要内容,如果未能解决你的问题,请参考以下文章