输入2个正整数m和n(m>=1,n<=500),输出m和n之间的所有素数,每行输出6个。

用c语言编写,要求简单点,带点注释...谢谢了...

//========================VC6中通过=========================
#include <stdafx.h>
int main()
{
int x,y,n=-1;//定义m,n值,和分行值
while(1)//输入不符合条件时,重新运行
{
printf ("输入区间首位:\n");
scanf ("%d", &x); // 输入
if(x>=1&&x<=500 )//当满足条件,则执行以下
{
while(1)//输入不符合条件时,重新运行
{
printf ("输入区间末位:\n");
scanf ("%d", &y);
if(x<=y&&y<=500)//当满足条件,则执行以下
{
int i,a,temp;//定义外、内循环,标准值
for(i=x;i<=y;i=i+1)
{
temp=0;//清零
for(a=1;a<=i;a=a+1)
{
if(i%a==0)//如果只被自己或1整除
{
temp++;//整除次数
if (temp>2)//如果还被自己和1以外的数整除
{
break;//跳出此循环
}
}
}
if(temp==2)//如果符合标准
{
n++;
if(n%6==0)//分行
printf ("\n");
printf ("%d ",i);
}
}
printf ("\n");
system("pause");
return 0;
}
}
}
}
return 0;}
//=====================================================
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-16
// Code.

#include <stdio.h>
#include <math.h>

int main()
{
int m, n, i, l = 0, leap = 1;
puts ("Please input m & n:");
do
{
scanf ("%d%d", &m, &n); // 输入
} while ( m < 1 || (n > 500 || n < 0) ); // 符合的条件
for ( ; m <= n; m++ ) // 从m开始到n
{
for ( i = 2; i <= sqrt(m); i ++ ) // 从2开始,素数是能比1和自身整除
{
if ( m % i == 0 ) // 能除尽肯定不是
{
leap = 0; // 不是就leap赋0
break;
}
}
if ( leap ) // 是就赋1
{
printf ("%-4d", m); // 输出
l ++; // 计算输出了多少个
if ( l % 6 == 0 ) // 够6个换行
{
putchar(10);
}
}
leap = 1;
}
printf ("\nThe total is %d\n", l); // 输出一共多少个素数
return 0;
}
第2个回答  2020-01-01
#include
#include
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;
}
}
第3个回答  2019-05-02
//========================VC6中通过=========================
#include
int
main()
{
int
x,y,n=-1;//定义m,n值,和分行值
while(1)//输入不符合条件时,重新运行
{
printf
("输入区间首位:\n");
scanf
("%d",
&x);
//
输入
if(x>=1&&x<=500
)//当满足条件,则执行以下
{
while(1)//输入不符合条件时,重新运行
{
printf
("输入区间末位:\n");
scanf
("%d",
&y);
if(x<=y&&y<=500)//当满足条件,则执行以下
{
int
i,a,temp;//定义外、内循环,标准值
for(i=x;i<=y;i=i+1)
{
temp=0;//清零
for(a=1;a<=i;a=a+1)
{
if(i%a==0)//如果只被自己或1整除
{
temp++;//整除次数
if
(temp>2)//如果还被自己和1以外的数整除
{
break;//跳出此循环
}
}
}
if(temp==2)//如果符合标准
{
n++;
if(n%6==0)//分行
printf
("\n");
printf
("%d
",i);
}
}
printf
("\n");
system("pause");
return
0;
}
}
}
}
return
0;}
//=====================================================
相似回答