一、代码思想
1.借助循环,产生100到200之间的数i
2.判断i是否为素数:用2到i-1之间的数字去试除i,如果i能被整除则不是素数,反之是素数
二、代码
#include <stdio.h> int main() { //找出100到200之间的素数,并打印在屏幕上 //素数又称质数,只能被1和本身整除的数字 for (int i = 101; i < 200; i++)//生成100到200的数,但100和200肯定不是素数,没必要从100开始到200结束 { int flag = 1;//打标记,当i为素数时flag为1,此时假设i为素数 for (int j = 2; j <= i - 1; j++)//用2到i-1之间的数字去判断i是不是素数 { if (i % j == 0) { flag = 0;//i不是素数时将flag置为0 break;//跳出当前循环 } } if (flag == 1)//判断完后flag依然为1,则i为素数 { printf("%d ", i); } } return 0; }三、运行结果
四、代码优化
#include <stdio.h> #include <math.h>//库函数sqrt的头文件 int main() { for (int i = 101; i < 200; i+=2)//原基础上,排除偶数 { int flag = 1;//打标记,当i为素数时flag为1,此时假设i为素数 for (int j = 2; j <= sqrt(i); j++)//用2到i的平方根之间的数字去判断i是不是素数 { if (i % j == 0) { flag = 0;//i不是素数时将flag置为0 break;//跳出当前循环 } } if (flag == 1)//判断完后flag依然为1,则i为素数 { printf("%d ", i); } } return 0; }相较于上一个代码,优化后的代码需要循环的次数更少。