输入两个正整数m和n(m≥1,n≤500),输出m和n之间的所有素数,每行输出6个,

输入两个正整数m和n(m≥1,n≤500),输出m和n之间的所有素数,每行输出6个,
每个正整数按%4d格式输出

#include<stdio.h>
#include<math.h>
int main(void)
{
int count,i,x,y,m,n;
count=0;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
if(m>1)
for(x=m;x<=n;x++);
else
for(x=2;x<=n;x++)
{
y=sqrt(x);
for(i=2;i<=y;i++)
if(x%i==0)
break;
if(i>y){
printf("%4d",x);
count++;
if(count%6==0)
printf("\n");
}
}
printf("\n");
return 0;
}

求改错~

1、打开Flash软件,选择“ActionScript3.0”选项,新建一个空白文档。

2、选择“编辑栏”的“文本工具”,在“属性”面板中选择“输入文本”,在舞台绘制一个输入文本框,将“实例名称”更改为“in1_txt”。

3、定义按钮out_btn鼠标单击事件的侦听器,接收函数为onClick。

4、接着,定义侦听器函数onClick,事件为鼠标事件。

5、函数中,先定义一个布尔型变量,用于标识数字是否为素数,先赋值为真。

6、定义起始数min和结束数max,类型为整型,用parseInt函数将输入文本框中的字符串转换为数字,并分别赋值给两个变量。

7、定义字符型变量str,用于保存已确定的素数。

8、运行程序,结果如下图所示。

注意事项:

质数被利用在密码学上,所谓的公钥就是将想要传递的信息在编码时加入质数,编码之后传送给收信人,任何人收到此信息后,若没有此收信人所拥有的密钥,则解密的过程中(实为寻找素数的过程),将会因为找质数的过程(分解质因数)过久,使即使取得信息也会无意义。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-12-02
#include<stdio.h>
#include<math.h>
int main(void)
{
int count,i,x,y,m,n;
count=0;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
if(m>n)//m,n如果不是m小的话,换一下
{
i=m;
m=n;
n=i;
}
//if(m>1)//这个不用判断的,因为题目已经说了。他是让你放心,不是让你判断

{
for(x=m;x<=n;x++)//;这里多分号
{
y=sqrt(x*1.0);//我是用C++的这里的重载要明确
for(i=2;i<=y;i++)
if(x%i==0)
break;
if(i>y)//说明x是素数
{
printf("%4d",x);
count++;
if(count%6==0)
printf("\n");
}
}
printf("\n");
return 0;
}
}本回答被提问者采纳
第2个回答  推荐于2018-05-07
if(m>1)之后改为
if(m>n){
for(x=n;x<=m;x++);
m=n;
n=x; }
删掉13行的else本回答被网友采纳
第3个回答  2019-06-24

#include<stdio.h>

main()

{

int tag,i,j,m,n,k=0,s=0;

printf("输入m和n\n");

while(scanf("%d %d",&m,&n)==1);

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

{if(i==1) tag=1;             //先把1标记为非质数

else tag=0;                     //判断每一个i前,值0.假定i为质数      

for(j=2;j<i;j++)

if(i%j==0)

tag=1;                          //非质数 

if(tag==0)

{s=s+i;k++;                //求质数和,判断质数个数

printf("%-4d  ",i);       //左对齐

if(k%12==0) printf("\n");  //每输出12个质数换行

}

}

printf("\n\n");

printf("%d %d",k,s);

}

相似回答