问题描述
解决方案
你求素数的思路是:(100~200)中只要不能被(2~所计算数的一半(n/2))整除就认为该计算数不是素数,并将“j”赋值为1。
①左边程序中,在第一层For循环中,第一个数是100,不是素数,就会将“j”赋值为1,由于在第一层FOR循环中没有给“j”初始化为0语句,
这样在后面语句中既是有素数出现,j的值始终都是1.
②右边程序,在第一层For循环中,加了个j=0的初始值赋值,这样会每次对n值判定,都会被认识是素数开始,知道n%i=0时,判定为非素数。
解决方案二:
因为每次判断,都需要把j重新设置为0。否则后面遇到素数也会因为上一个数字是合数将j设置为1没有恢复而也被判断为和数。
解决方案三:
放里面放外面都可以,只不过你上面一个程序中,每次外循环时j没有初始化为0。
解决方案四:
编程中使用了 标志flag之类的东西做为结果得出的依据时候,
要注意这个flag要不要进行 reset
在哪里设置了它打开/关闭,那么就要想到还要对他进行 关闭/打开
时间: 2024-08-31 11:57:46