#include <iostream> using namespace std; bool is_prime(int x) { if (x == 1) return false; for (int i = 2; i <= x / i; i ++ ) { if (x % i == 0) return false; } return true; } int main() { int cnt = 0; for (int i = 99; i < 1000; i ++) if (is_prime(i)) cnt ++; cout << cnt << endl; }
#include<iostream> using namespace std; bool IsPrime(int i) { bool flag = true; for(int j=2;j<i;j++) { if(i%j==0) { flag = false; break; } } if(flag) return true; else return false; } int main() { int count =0; for(int i = 100;i<1000;i++) { if(IsPrime(i)) count++; } cout<<count<<endl; return 0; }
#include <stdio.h> int main() { int count = 0; //计算质数的个数 //生成100到999的数,并且偶数肯定不是质数 for (int i = 101; i<1000; i += 2) { int falg = 0; //生成1到i的除数 for (int j = 1; j<= i; j++) { if(i % j == 0) { falg++; } //被第三个数整除就不是质数了,提高效率 if(falg > 2) { break; } } if(falg == 2) count++; } printf("%d\n",count); return 0; }
#include <stdio.h> int main(void) { int a=0,b=0; for(int i=100;i<=999;i++) { a=0; for(int j=1;j<=i;j++) { if(i%j==0) a++; } if(a==2) b++; } printf("%d",b); }
#include<stdio.h> #include<math.h> int main() { int i ,j; //定义两个临时变量 int count = 0; //定义一个计数器 for(i = 101;i<1000;i+=2)//我们知道偶数肯定可以被2整除,因此i直接从101开始,每次+2;减少了一半的偶数;调高效率 { for(j = 2;j<sqrt(i);j++)//这里j从2开始,j不能<=sqrt(i) { if(i%j==0) //如果j<=走到这里就会进入判断,break后,j会++; { break; } } if(j>sqrt(i)) //导致这里判断会失败 { count++ ; } } printf("%d",count); //打印质数的个数 return 0; }
#include <stdio.h> #include <math.h> int main(void) { int count = 0; int i, j, isprime; for (i = 100; i < 1000; i++) { isprime = 1; for (j = 2; j <= sqrt(i); j++) { if (0 == i % j) { isprime = 0; break; } } if (isprime) { count++; } } printf("%d\n", count); return 0; }//看过C Primer Plus的直接理解即可;
#include<stdio.h> //参照别人的,写得很微妙 int main() { int i,j,n=1,count=0; for(i=100;i<=999;i++) { n=1; //n赋值不能为0 for(j=2;j<i;j++) { if(i%j==0) { n=0; //n=0不是无用功,如果没有n=0,n的值将全是非0,影响下面if条件的执行 break; //break,当证明它是质数时跳出本循环如当i=20,j=2即证明,不用证明j=2后面的数 } } if(n) //这个if是在外循环,初始n时n=1既是真,执行if都语句,当i%j!=0时执行这语句 { count++; } } printf("%d",count); return 0; }