#include<stdio.h>
#include <math.h>
int main(){
int n,num,r=0;
int j;
printf("请输入要判断的数个数:");
scanf("%d",&n);
for(int i = 0;i<n;i++){
scanf("%d",&num);
for(j=2;j<sqrt(num);j++){
if(num%j==0)
break;
}
if(num==1) continue;
if(j>sqrt(num)) r++;
}
printf("质数个数为:%d",r);
}
测试结果:
sqrt是math.h中的开根号,(通过开方来限制循环次数从而提高代码运行效率)
下面是通过调用函数实现
#include<stdio.h>
#include <math.h>
int isPrime(int num){
int j;
for(j=2;j<sqrt(num);j++){
if(num%j==0)
break;
}
if(num==1) return 0;
if(j>sqrt(num)) return 1;
}
int main(){
int n,num,r=0;
int j;
printf("请输入要判断的数个数:");
scanf("%d",&n);
for(int i = 0;i<n;i++){
scanf("%d",&num);
if(isPrime(num)==1)
r++;
}
printf("质数个数为:%d",r);
}
测试结果: