為什么這樣做可以得出素數(shù)?原理是什么不太理解
int m, n;
? ? for(m=2; m<=50; m++)
? ? {
for(n=2; n<m; n++)
? ? ? ? {
? ? ? ? ? ? if(? ? m%n==0? ?)? ? ? ?//什么條件下跳出當前循環(huán)
? ? ? ? ? ? ?break;? ? ? ? ? ? ? ? //這里應(yīng)該退出當前循環(huán)了
}
? ? ? ? if(m == n)? ?//n循環(huán)結(jié)束后,如果m=n的話就輸出m
? ? ? ? ? ? printf("%d? ", m);
}
請問這樣的原理是什么?我不太理解
2019-08-12
意思就是當m為5的時候,n從2到4全部走一遍,m%n只要不為0,就代表m可以被其他數(shù)除,就不是素數(shù)
2019-07-23
if()的定義 ?不等于0時候不執(zhí)行if的內(nèi)容 n就一直加 ? 加到n<m 不成立停止 或者到符合if定義執(zhí)行if(我是這么理解的)
2019-07-23
樓上在說什么東西呀,亂七八糟的。素數(shù)就是除了1和其本身之外不能被其他數(shù)整除的數(shù)。第一個for循環(huán)是外循環(huán),走到50.第二個for循環(huán)是內(nèi)循環(huán),如果整除了直接跳出循環(huán)(不是素數(shù)),如果沒有的話一直到n==m循環(huán)條件不滿足,內(nèi)循環(huán)終止。再根據(jù)if(m == n)判斷是不是走完了整個循環(huán)(素數(shù)),而不是中間跳出的。
2019-07-22
然后m等于6時,n=2,此時6%2==0,跳出循環(huán),但是m不==n(6不==2)所以沒有被打印,然后下一個
2019-07-22
哦我明白了,是不是m一直等于5,然后n依次等于2,3,4,始終不能使m%n==0,直到n等于5時,因為n不<m導(dǎo)致跳出循環(huán)了,此時m=5,n=5,就被打印了
2019-07-22
是不是說5%2不等于0并不會退出循壞,而是把n++然后再循環(huán)直到有一次m不<0或者m==n時才跳出循環(huán)?
2019-07-22
就比如說,m=5時,進入第一個循環(huán):n=2,n<m(2<5)符合要求,進入下一層if m%n。m%n就是5%2不等于0,不符合要求,那這個循環(huán)就結(jié)束了,進入if(m==n),這時5不等于2不符合要求,5就沒有被打印,那這個循環(huán)也結(jié)束了,回到最開始,5就沒有被打印出來啊。為什么結(jié)果卻有一個5