例:
#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;
第二个if语句少了一个括号。
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;
}
我试了没有错误,你再试一下。你输入的时候注意要用逗号好分开。