有沒有大神告訴我 這是為什么
作者的標準答案中用除數(m)去除于被除數(n),但在子循環中邏輯式中式要求n<m,為什么還會有后面的n=m,并且還輸出了?還有如果按這個公式算的話4/4余0,4=4,為什么4沒有輸出以及6除于6,8除于8........,
作者的標準答案中用除數(m)去除于被除數(n),但在子循環中邏輯式中式要求n<m,為什么還會有后面的n=m,并且還輸出了?還有如果按這個公式算的話4/4余0,4=4,為什么4沒有輸出以及6除于6,8除于8........,
2022-06-09
舉報
2023-02-17
因為不可能出現你說的這種情況,外層循環當m=4的時候,到子循環n是從2開始遍歷2到4之間的數
2022-11-02
暴力從2一直遍歷到自身 如果能取模為0(至少含有2這個因子 ) 說明不是素數 跳出遍歷 繼續判定下一個數 暴力遍歷??
2022-10-19
#include <stdio.h>
int main()
{
? ? int m, n;
? ? for(m=2; m<=50; m++)
? ? {
for(n=2; n<m; n++)
? ? ? ? {
? ? ? ? ? ? if(m%n==0)? ? ? ?//什么條件下跳出當前循環
? ? ? ? ? ? ? break;? ? ? ? ? ? ? ? ?//這里應該退出當前循環了
}
? ? ? ? if(m == n)? ?//n循環結束后,如果m=n的話就輸出m
? ? ? ? ? ? printf("%d? ", m);
}
return 0;? ??
}
首先說明一下什么是素數,素數就是只能被1和它本身整除的數,搞清楚后就開始講這個程序是怎么一步一步來的;
第一次:最外頭的for循環給的m的初始值為2,即m=2,然后就開始內部的for循環了,即n=2,m%n(2%2==0),所以就輸出m了,即2是素數;第二次最外頭的for循環m=3,而內for循環的n的值就回到n=2了,而不是n=3,就會變成3%2!=0,然后n自增變成n=3了,就變成3%3==0,所以3是素數;第三次最外頭的for循環m=4,內for循環n=2,然后4%2==0,但4與2不相等,所以4不是素數,后面以此類推,我第一次講,希望我講清楚了
2022-07-24