【问题描述】
输入两个正整数m和n(m≥1,n≤500),输出m和n之间的所有素数,每行输出6个。素数是指只能被1和自身整除的正整数,最小的素数是2。
【输入输出样例】(下划线部分表示输入)
Input m: 1
Input n: 35
2 3 5 7 11 13
17 19 23 29 31
【样例说明】
每行输出6个正整数,每个正整数按%4d格式输出。
输入提示符后要加一个空格。其中“:”后要加一个且只能一个空格。
英文字母区分大小写。必须严格按样例输入输出。
#include <stdio.h>
#include <math.h>
int judgeprime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
return 0;
return 1;
}
int main()
{
int i,n,M,N,a;
printf("Input M: ");
scanf("%d",&M);
printf("Input N: ");
scanf("%d",&N);//这一段开始加了"\n",导致顺序不对。
if(M>N)
{
a=M;
M=N;
N=a;
}//两数交换。
if(M>=1&&N<=500)
{
for(i=M,n=0;i<=N;i++)//若令n初始值为1,则需做如下改变。
{
if(judgeprime(i)&&i!=1)
{
n++;
printf("%4d",i);
if(n%6==0)
printf("\n");
}
}
}
return 0;
}
for(i=M,n=1;i<=N;i++)
{
if(judgesushu(i)&&i!=1)
{
printf("%4d",i);
if(n%6==0)
printf("\n");
n++;
}
}