c语言 统计输入两个数字之间素数个数并输出素数

2024-11-12 06:30:05
推荐回答(3个)
回答1:

例:

#include

voidmain()

{

inti,j,a,b;

intc[100],count;

count=0;

do/*让输入的数a小于数b*/

scanf("%d%d",&a,&b);

while(a>b);

for(i=a;i<=b;i++)/*判断a.b之间的素数*/

{for(j=2;j

if(i%j==0)break;

if(i==j)c[count++]=i;/*如果是素数,最后i==j,把素数存入数组c,且count计数*/

}

for(i=0;i

{printf("%d",c[i]);

if((i+1)%5==0)printf("\n");

}

printf("素数的个数%d:",count);

}

扩展资料

C语言输出任意两个数之间的质数

#include

staticintisPrime(intn);

voidmain()

{

intlow,high;

intflag=1;

while(flag==1)

{

printf("输出两个数(一空格分割):");

scanf("%d%d",&low,&high);

/*

//3.利用异或运算来交换数据

//利用的思想原理是:一个数异或同一个数两次,结果还是那个数,而且不会超出int范围

unsignedinta=60;//00111100

unsignedintb=13;//00001101

printf("交换之前:a=%d,b=%d\n",a,b);//输出a,b的值

a=a^b;//a=a^b=00110001

b=a^b;//b=a^b=00111100

a=a^b;//a=a^b=00001101

printf("交换之后:a=%d,b=%d\n",a,b);//输出a,b的值

*/

//如果low输入的值大了,交换,保证low的值小于high

if(low>high)

{

low=low^high;

high=low^high;

low=low^high;

}

inti;

staticintfirst=0;

intcount=0;

for(i=low;i

{

if(isPrime(i)==1)//如果i是质数

{

//输出逗号,第一个逗号屏蔽

if(first==1)

{

printf(",");

//每十个束素数一行

if(++count%10==0)

printf("\n");

}

elsefirst=1;

printf("%5d",i);//输出素数

}

}printf("。");

printf("\n继续[1/0]?:");

scanf("%d",&flag);

}

}

staticintisPrime(intn)//判断n是不是质数

{

if(n<=1)

return-1;

intISPrime=1;//默认是质数,用1表示

inti;

回答2:

第二个if语句少了一个括号。

回答3:

int main()
{
int a,b,c,d,e=0;
scanf("%d,%d",&a,&b);
for(c=a;c<=b;c++)
{
for(d=2;d<=c;d++)
{
if(c%d==0&&d!=c)
{
break;
}
if(d==c)
{
e=e+1;
printf("%d ",c);
}
}
}
printf("两数间素数共有%d\n",e);
return 0;
}
我试了没有错误,你再试一下。你输入的时候注意要用逗号好分开。