{前言:这个系列相较于复习资料不太成体系,就当看着玩玩吧,主要讲讲茅塞顿开的时刻吧。}
题干:
输入:
取值范围
输出:
该范围内的最大素数
解题思路:
首先想一想素数的观念:只能被自己和1整除,被其他数除都有余数。这就自然而然的想到使用循环结构了,从1到n。如果满足除以 从2到n-1 余数都不为0,那么这个数必然是素数。
之后就要考虑“最大”了。这必是一个循环,而开头则要注意:是从n-1开始而不是2。
如此看来,这是一个循环套循环的结构,此时对于循环变量的选择和控制尤为重要。
代码实现:
#include<stdio.h>
int main()
{
int n,i,j,flag=0;
scanf("%d",&n);
for (i=n-1;i>=1;i--)
{
flag=0;
for (j=2;j<i;j++)
{
if (i%j==0) flag=1;
}
if (flag==0) {printf("The max prime number is %d.\n",i);return 0;}
}
}
{后记:有的时候回看之前的题,会觉得莫名其妙。这个还能难到我?然而在某部分掌握不牢的情况下确实会被一个点卡很久。站在现在这个节点上,仍然会有一些让我很疑惑、编程编很久的题,这也变向意味着对于某部分理解不够深入。所以现在能做的是什么呢?再看一些这个板块的资料并且相信自己一定可以迎来——茅塞顿开的瞬间的}