課程
/后端開發
/C
/C語言入門
for的父循環中m=5的時候,自循環規定了n<m,那此時n最大只能是4,子循環執行完了,也沒有滿足m=n,為何結果還有5。另外我在子循環里面加上n<=m,結果也是一樣的。哪個正確?
@Perona
2015-08-09
源自:C語言入門 4-14
正在回答
首先了解一下素數的概念。素數是只能除以1和自身的數。
這里2個for循環,外面的for循環是遍歷0-50這幾個數的,里面的for是看m除了自己還能不能被整除。
外面的for從2開始算m是不是素數,n是除數,除數從2開始,如果m除以2余數為0,說明m能被2整除,則m不是素數,里面for循環break,繼續算外面的for循環m+1。
第一次循環:m=2,
????????子循環:(因為這里n=2,n<m,不做循環),跳出,執行if(m == n) 輸出2
第二次循環:m=3,
? ? ? ? ?子循環:n=2,m%2=1
??????????重點是(n++)這個,n++是什么呢?是自增1。本次循環中先取到n的值是2,但是循環結束后,n是不 ? ? ? ? ? 是就自增了1,執行if(m == n)?輸出3
第三次循環:m=4,
? ? ? ? ?子循環:n=2,m%2=0,不符合。
第三次循環:m=5,
? ? ? ? ?子循環:n=2,m%2=1,跳出?
????????這里就是你想要知道的答應,當n循環到4的時候,跳出循環,n自增了1,執行if(m == n)?輸出5。
......(接下來的循環自行腦補)
子循環為嘛要判n>m,因為素數是只能除以1和自身的數。那么除數和被除數相等是沒有意義的。所以應該是n>m,而不是n>=m。
你看下,還有什么不懂的說說唄。
PS:你是第一個@我的人,我有種莫名的感動?。√x謝你,童鞋,你真可耐,么么噠~~~
小玖so 提問者
明白了,受教
666
首先M=2 N=2 余數為0 跳出循環 然后 M++ ?M=3 N=2 余數為1不跳 N<M N++ N=3 余數為0則跳出循環 以此類推。這才是正解,按樓主的理解,9就不行了,9可以被3整除,不是素數。
Perona
話說一開始就被素數的概念給砸暈了。。。
看了老半天覺得應該得用模運算,就是沒敢下手,其實就是兩行代碼的事。。。
除余運算,看來得重視了
多謝樓主,提點啦
判斷這個,只判斷第一個數字的,比如第一次循環的m=2 n=2那么這不就是相等情況了嗎?你把整個運算順序分析一下
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
3 回答幫忙解答一下,謝謝
3 回答有大佬幫忙解答一下嗎?謝謝
2 回答幫忙白話點,解答下。謝謝
3 回答請幫忙回答一下謝謝
1 回答幫忙回答 下 謝謝
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-08-10
首先了解一下素數的概念。素數是只能除以1和自身的數。
這里2個for循環,外面的for循環是遍歷0-50這幾個數的,里面的for是看m除了自己還能不能被整除。
外面的for從2開始算m是不是素數,n是除數,除數從2開始,如果m除以2余數為0,說明m能被2整除,則m不是素數,里面for循環break,繼續算外面的for循環m+1。
第一次循環:m=2,
????????子循環:(因為這里n=2,n<m,不做循環),跳出,執行if(m == n) 輸出2
第二次循環:m=3,
? ? ? ? ?子循環:n=2,m%2=1
??????????重點是(n++)這個,n++是什么呢?是自增1。本次循環中先取到n的值是2,但是循環結束后,n是不 ? ? ? ? ? 是就自增了1,執行if(m == n)?輸出3
第三次循環:m=4,
? ? ? ? ?子循環:n=2,m%2=0,不符合。
第三次循環:m=5,
? ? ? ? ?子循環:n=2,m%2=1,跳出?
????????這里就是你想要知道的答應,當n循環到4的時候,跳出循環,n自增了1,執行if(m == n)?輸出5。
......(接下來的循環自行腦補)
子循環為嘛要判n>m,因為素數是只能除以1和自身的數。那么除數和被除數相等是沒有意義的。所以應該是n>m,而不是n>=m。
你看下,還有什么不懂的說說唄。
PS:你是第一個@我的人,我有種莫名的感動?。√x謝你,童鞋,你真可耐,么么噠~~~
2016-05-23
明白了,受教
2015-10-26
666
2015-09-02
首先M=2 N=2 余數為0 跳出循環 然后 M++ ?M=3 N=2 余數為1不跳 N<M N++ N=3 余數為0則跳出循環 以此類推。這才是正解,按樓主的理解,9就不行了,9可以被3整除,不是素數。
2015-08-14
話說一開始就被素數的概念給砸暈了。。。
看了老半天覺得應該得用模運算,就是沒敢下手,其實就是兩行代碼的事。。。
除余運算,看來得重視了
多謝樓主,提點啦
2015-08-10
判斷這個,只判斷第一個數字的,比如第一次循環的m=2 n=2那么這不就是相等情況了嗎?你把整個運算順序分析一下