用c语言编程输入一个任意的正整数,这个正整数要求小于20。要求计算出这个正整数于这个正整数100倍的数...

用c语言编程输入一个任意的正整数,这个正整数要求小于20。要求计算出这个正整数于这个正整数100倍的数之间所存在的素数的个数,并以每行6个,等宽的方式显示结果。

#include <stdio.h>

#include <math.h>

void main()

{

    int i,j,num=0,n,flg;

    printf("输入任意小于20的正整数:\n  >>");

    scanf("%d",&i);

    while(i>=20||i<=0)

    {

        printf("Error!\n请重新输入:\n  >>");

        scanf("%d",&i);

    }

    n=i*100;

    printf("\n%d至%d之间的素数有:\n",i,n);

    for(;i<n;i++)

    {

        if(i==1)

            continue;

        flg=(int)sqrt(i);

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

            if(i%j==0)

                break;

        if(j>flg)

        {

            printf("%6d",i);

            if((++num)%6==0)

                putchar('\n');

        }   

    }

    printf("\n");

}

运行的结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-15
#include "stdio.h"
int is_prime(int x)//判断x是否是素数,是,返回1,不是返回0
{
int i;
for(i=2;i<=x/2;i++)
if(x%i==0)
return 0;
return 1;
}
int main()
{
int n,i,count=0;
printf("Please input n(n<20):");
scanf("%d",&n);
if(n>=20 ||n<0)
{
printf("输入错误,程序中止!\n");
return 1;
}
for(i=n;i<=n*100;i++)
{
if(is_prime(i)==1)
{
printf("%4d ",i);
count++;
}
if(count%6==0 && count!=0)
printf("\n");
}

printf("\n%d到%d之间素数的总个数为%d\n",n,100*n,count);
}本回答被网友采纳
第2个回答  2013-04-15
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
int n;
int IsPrime(int x);
printf("请输入一个小于20的正整数:");
do
{
scanf("%d",&n);
if(n<=0||n>20)
{
printf("输入错误,请重新输入一个小于20的正整数:");
}
else
{
break;
}
}while(1);

printf("大于%d小于100*%d的素数有:\n",n,n);
for(int i=n,j=0;i<100*n;i++)
{
if(IsPrime(i))
{
printf("%4d ",i);
j++;
if(j==6)
{
printf("\n");
j=0;
}
}
}
return 0;
}
int IsPrime(int x)
{
if(x<2)
{
return 0;
}
else if(x==2)
{
return 1;
}
else
{
for(int k=2;k<=sqrt(x);k++)
{
if(x%k==0)
{
return 0;
}
}
return 1;
}
}
第3个回答  2013-04-15
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,k,count=0,prime,n;
printf("请输入整数n:");
scanf("%d",&n);
if(n<0||n>20)
{
printf("error!");
return 0;
}
for(i=n;i<=100*n;i++)
{
prime=1;
k=(int)sqrt(i);
for(j=2;j<=k;j++)
if(i%j==0)
prime=0;
if(prime)
{
printf("%5d",i);
count++;
if(count%6==0)
printf("\n");
}
}
printf("\n");
return 0;
}
第4个回答  2013-04-15
#include <math.h>
main()
{
long n,m=0,i,j;
scanf("%ld",&n);
for(i=n;i<=100*n;i++)
{
for(j=2;j<=sqrt(i)&&i%j>0;j++);
if(i%j!=0)
{
printf("%12ld",i);
m++;
if(m%6==0)printf("\n");
}
}
printf("\n");
}