求大神解答
#include <stdio.h>
int main()
{
? ? int m, n;
? ? for(m=2; m<=50; m++)
? ? {
for(n=2; n<=m; n++)
? ? ? ? {
? ? ? ? ? ? if(m%n==0)? ? ? ?//什么條件下跳出當前循環(huán)
? ? ? ? ? ? ? break;? ? ? ? ? ? ? ? ?//這里應該退出當前循環(huán)了
}
? ? ? ? if(n == m)? ?//n循環(huán)結束后,如果m=n的話就輸出m
? ? ? ? ? ? printf("%d\n", n);
}
return 0;? ??
}
n<=m,也是正確結果,為什么呢?不應該所有數(shù)都滿足么?
2022-03-20
以外循環(huán)m==5為例,當n==4時,執(zhí)行循環(huán)體,接著執(zhí)行n++得到n==5,此時
此時,對于n<m : 滿足不了n<m,跳出內循環(huán),執(zhí)行if(n == m),說明5除了1以外只能被5整除,為素數(shù);
? ? ? ? ? 對于n<=m:滿足n==m,執(zhí)行內循環(huán)體,由于m%n=0,執(zhí)行break,同樣也跳出了內循環(huán),執(zhí)行if(n == m),說明5除了1以外只能被5整除,為素數(shù);
綜上所述,兩種情況得到的結果都是相同的,且均是正確的,如有出錯,感謝各位指正。
2021-11-13
for(n=2; n<=m; n++)這里錯了,n<m.不然?if(n == m)用來干嘛