#include<stdio.h>#include <stdlib.h>#include <math.h>int isprime(int a){ int i,b; b=0; for(i=2;i<=sqrt(a);i++) { if(a%i==0) { break; } else { b=b+1; printf("%d ",a); } }}int main(){ int a,b,m,n; printf("输入区间 [m,n]范围\n"); scanf("%d,%d",&m,&n); for(a=m;a<=n;a++) { if(a==2) { printf("%d ",a); } else { isprime(a) ; } } printf("素数总数%d",b);}题目条件规定对素数的判断要编写函数为什么有些数字会重复输出?还有该怎么统计输出的素数总数?
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
int isprime(int a)
{int i;
if(a<2)return 0;
for(i=2;i<=sqrt(a);i++)
if(a%i==0)return 0;
printf("%d ",a);
return 1;
}
int main()
{
int a,b=0,m,n;
printf("输入区间 [m,n]范围\n");
scanf("%d,%d",&m,&n);
for(a=m;a<=n;a++)
{
if(a==2)
{ printf("%d ",a);
b++;
}
else
{ b+=isprime(a) ;
}
}
printf("\n素数总数%d\n",b);
return 0;
}