用c语言如何编程:
输出m~n间的全部素数。要求每个数输出字宽为5个字符,每输出5个素数换一行
解答如下
#include <stdio.h>
int IsPrime(int n)
{
int i;
if (n==2)
return(1);
if (n%2==0)
return(0);
for(i=3; i<=n/2+1; i+=2)
if (n%i==0)
return(0);
return(1);
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
int count=0;
for(int i=m;i<=n;i++)
{
if(IsPrime(i))
{
printf("%5d",i);
count++;
if(count%5==0) printf("\n");
}
}
return 0;
}
加一个判断素数的函数
//输出m~n间的全部素数。要求每个数输出字宽为5个字符,每输出5个素数换一行
#include <stdio.h>
int isprime(int n)
{
if(n<2)
return 0;
for(int i=2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}
int main()
{
int m,n,sum=0;
scanf("%d%d",&m,&n);
for(int i=m;i<=n;i++)
{
if(isprime(i) == 1)
{
sum++;
printf("%5d ",i);
if(sum%5==0)
printf("\n");
}
}
}