c语言程序设计 :输出200··300之间的素数,要求从小到大,每行显示5个数

如题所述

#include<stdio.h>
#include<math.h>
void main()
{
int m,n,i,k;
n=0;
for(m=201;m<300;m=m+1)/*最外循环显示取值范围*/
{
k=sqrt(m);/*此处是判断一个数是否是素数的方法,一个素数是数就是除了2和它本身之外不能被其他书整除,方法就是把m(假如m是素数)看做被除数,2到√m(开根号)之间的数作为除数,如果m能出尽i就说明m不是素数,否则就是素数*/
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{
printf("%d ",m);
n=n+1;/*n相当于一个计数器,每输出一个素数加1,直到加到5时相当于在一行输出了5个素数,这时就利用n%5==0实现换行*/
}
if(n%5==0) /*每行显示5个数*/
printf("\n");
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-26
输出200..300之间的素数,要求从小到大,每行显示5个数

#include "stdio.h"
#include "math.h"

void main()
{
listPrimeNumber(200, 300);
}

/* 输出start至end之间的所有素数 */
void listPrimeNumber(int start, int end)
{
int num;
int count = 0;
for(num=start; num<=end; num++)
{
if(isPrimeNumber(num) == 1)
{
if(count++ % 5 == 0)
{
printf("\n%d\t", num);
}
else{
printf("%d\t", num);
}
}
}
}

/* 判断一个正整数是否是素数:1 素数,0 非素数 */
int isPrimeNumber(int num)
{
int k = (int)sqrt(num);
int i;
for(i=2; i<=k ;i++)
{
if(num % i == 0)
{
break;
}
}
if(i > k)
{
return 1;
}
return 0;
}
第2个回答  推荐于2018-03-01
你好,标准答案如下:
#include <stdio.h>
main()

{

int i,j,counter=0;

for(i=11; i<=100; i+=2)

{

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

if(i%j==0)break;

if(j>=i)

{

printf("%4d",i);

counter++;

}

if(counter%5==0)

printf("\n");

}

}本回答被提问者和网友采纳
第3个回答  2011-04-01
#include <math.h>
void main()
{ int n=0, i, j,w,k;
for(i=2;i<=1000; i++)
{w=1;
k=sqrt(i);
for (j=2; j<=k; j++)
if (i%j==0)
if (w) {
++n;
if (n%10==0) printf("%d\n",i);
else printf("%d\t",i);
}
}

}
另外,团IDC网上有许多产品团购,便宜有口碑
第4个回答  2011-03-27
#include <stdio.h>
main()

{
int i,j,k=0;
for(i=200; i<=300; i++)
{
for(j=2;j<i;j++)
if(i%j==0)break;
if(j>=i)
{
printf("%4d",i);
k++;
}

if(!(k%5))
printf("\n");

}

}