基本的求素数方法。其中要注意的是sqrt(double),所以用sqrt(n*1.0)。还有flag标记的使用。
1 #include<iostream> 2 #include<math.h> 3 using namespace std; 4 #define N 100000000 5 int main() 6 { 7 int n,b,s,f,i; 8 while(scanf("%d",&n)!=EOF) 9 { 10 s=0; 11 while(n--) 12 { 13 scanf("%d",&b); 14 f=0; 15 for(i=2;i<=sqrt(b*1.0);i++) 16 if(b%i==0) 17 {f=1;break;} 18 if(!f)s++; 19 } 20 printf("%d ",s); 21 } 22 return 0; 23 }
还有一种高端方法叫筛法求素数。稍后学习。