【C】北理C语言——曾困扰我很久的题目系列第1题

{前言:这个系列相较于复习资料不太成体系,就当看着玩玩吧,主要讲讲茅塞顿开的时刻吧。}


        题干:

                输入:

                        取值范围

                输出:

                        该范围内的最大素数

        解题思路:

                首先想一想素数的观念:只能被自己和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;}
	}
} 

{后记:有的时候回看之前的题,会觉得莫名其妙。这个还能难到我?然而在某部分掌握不牢的情况下确实会被一个点卡很久。站在现在这个节点上,仍然会有一些让我很疑惑、编程编很久的题,这也变向意味着对于某部分理解不够深入。所以现在能做的是什么呢?再看一些这个板块的资料并且相信自己一定可以迎来——茅塞顿开的瞬间的}

         

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值