题目:打印100~200之间的素数
代码举例:
#include <stdio.h>
int main()
{
int i = 0;
//循环产⽣100~200的数字
for (i = 100; i <= 200; i++)
{
//判断i是否为素数
//循环产⽣2~i-1之间的数字
int j = 0;
int flag = 1;//假设i是素数
for (j = 2; j < i; j++)
{
if (i % j == 0)//整除,不为素数
{
flag = 0;//假
break;
}
}
if (flag == 1)//还为1,真,即这时i值为素数,打印。
printf("%d ", i);
}
return 0;
}
运行结果:
题目解析:
1. 明确概念:
素数又叫质数,质数是指在大于1的自然数中,除了1和它本身以外,不能被其他自然数整除的数。
2. 清晰思路:
1. 要从100~200之间找出素数,⾸先得有100~200之间的数,这⾥可以使⽤循环解决。
2. 假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产⽣2~i-1之间的数字,也可以使⽤循环解决。
3. 如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。
3. 应用知识:
分支与循环:
循环嵌套:
正常的for语句执行顺序:
for(表达式1;表达式2;表达式3)
{
}
⾸先执⾏ 表达式 1 初始化循环变量,接下来就是执⾏ 表达式 2 的判断部分, 表达式 2 的结果如果==0,则循环结束; 表达式 2 的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式3 ,调整循环变量,然后再去 表达式 2 的地⽅执⾏判断, 表达式 2 的结果是否为0,决定循环是否继续。
注意:上篇文章附带流程图
for循环嵌套时执行顺序:
for(表达式1;表达式2;表达式3)//(我们一般称这个为外循环)
for(表达式4;表达式5;表达式6)//(我们一般称这个为内循环)
{
代码块
}
(下面就简写成1,2,3,4,5,6)
执行顺序:首先执行1--如果2(ture)--继续执行4--如果5(ture)--第一次执行代码块--接下来执行6--执行5(ture or false)//面临两种选择--if ture则执行代码块--6--5(ture or false) --if false则跳出内循环--执行3--2(ture)--4--5(ture)--执行代码块--6--5(ture or false)又回到上面那部分。