#include <stdio.h>
int main()
{
int n,i;
for(n=101;n<=200;n++)
for(i=2;i<n;i++){
if(n%i==0)
break;
else
printf("质数为:%d\n",n);
}
return 0;
}
运行结果有问题,不知道该怎么改了
修改如下:
#include <stdio.h>
int main()
{
int n,i;
for(n=101;n<=200;n++)
{
for(i=2;i<n;i++)
{
if(n%i==0)
break;
}
if(i==n) //注意,在这里判断并输出
printf("质数为:%d\n",n);
}
return 0;
}
#include <stdio.h>
#include <math.h>
//判断 101-200 之间有多少个素数,并输出所有素数.
int
main(void) {
int s = 101, e = 200;
int count = 0; //素数总个数.
int i;
int sq; //对每个数开方.
for(i = s; i <= e; i++) {
int isPrime = 1; //标识当前数是否为素数,素数为1,0为非素数.
sq = (int)sqrt((float)i);
for(int j = 2; j <= sq; j++) {
if(i%j == 0) { //非素数.
isPrime = 0;
break;;
}
}
if(isPrime) {
printf("%d\n", i);
++count;
}
}
printf("素数总个数为:%d\n", count);
}