点赞(0)
 

0.0分

7 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 9 条评论

蒋雨涛 3年前 回复TA
@柠檬树下 @uq_20407637522 因为j==i时已经说明前面没有因数了,而它本身和1是唯一的一对因数。要是有其他因数,直接就退出循环了,根本就到不了j==ii
渐入佳境. 3年前 回复TA
@柠檬树下 小白求问,为什么j==i时是素数呀
小白来码 3年前 回复TA
@柠檬树下 想问一下当n=2时,i<n,j<n,就不成立了不是吗
像光 3年前 回复TA
那个减一很强
helena 4年前 回复TA
@柠檬树下 哦哦,终于懂了,谢谢!!
柠檬树下 4年前 回复TA
@柠檬树下 @helena 准确的来说是j自增后不满足条件而跳出内循环
helena 4年前 回复TA
@柠檬树下 因为第二个循环条件是j<i不能再自增了吧
helena 4年前 回复TA
@柠檬树下 你能解释一下为什么当i=3,j=2时j==i吗?我一直想不明白,谢谢!!!
柠檬树下 4年前 回复TA
#include <stdio.h>
int main()
{
	int i, j, n;
	scanf("%d", &n);
	for (i = 2; i < n; i++)
	{
		for (j = 2; j < i; j++)
		{
			if (i%j == 0)
			{
				break;
			}
		}
		if (j == i) printf("%d\n",i);
	}
	return 0;
}
我这个代码比你的还稍微短一些,可以少用一次条件判断。