这段代码试图判断一个数是否为质数,但逻辑有误。它从a=2开始检查n是否能被a整除,如果整除就输出"NO"并结束。但else分支会在每次循环中输出"NO",导致无论什么情况都会输出"NO"。 - 你的else分支放在while循环内部,并且与if配对,但else后面没有条件,这会导致每次循环中只要n%a不等于0,就会执行else输出"NO"。实际上,只有当循环结束都没有找到因数时,才应该输出"YES"。 - 另外,你的else语句位置不对,它不应该在a++之后,因为else必须紧跟在if之后。你需要重新考虑循环的结构:先检查是否能整除,如果不能,才增加a,而不是在a++之后放else。