這個題比較簡單,這裡給出兩種寫法:
1.
#includeint main()
} if (i >= (num/2))
}return 0;
}
2.
#includeint main()
} if (flag == 1)
}return 0;
}
這兩種寫法其實解題思想一致,只是判斷方法不同
從 for (i = 2; i <=num / 2; i++) 我們可以看出,我們只是模了2~num/2,並沒有模到num,這裡解釋一下
若num不是素數,那麼它的最小因數是2,它的最大因數也不會超過num/2,所以我們只模到num/2
同理,這裡我們可以再次優化一下,num = √num*√num,所以它的最大因數也不會超過√num,所以還可以這樣寫
#include#includeint main()
} if (flag == 1)
}return 0;
}
注意這裡的sqrt(num)表示: num開根號,因為要定義sqrt,這裡引入標頭檔案#include。這樣就會讓迴圈次數更少了,提高了執行效率。 c語言 求100 200之間的素數
素數 除了1和它本身之外不在有其他的因數 方法一 暴力比較法 從2開始一直比較到這個數減1的數,看有沒有數被整除,若整除則不是素數 include int is prime int prime 是素數 return1 int main return 0 方法二 對於100 200之間偶數一定不是素數...
輸出100 200之間的素數
如果要輸出乙個素數,首先要判 斷它是不是素數。大家都知道素數是只能被1和它本身除盡的數,1既不是素數也不是合數,2是最小的素數同時也是唯一乙個是偶數的素數,所以要判斷乙個數是不是素數,我想到了三種方法 假設這個數為a 法一 讓a依次和2到a 1相除,如果a不能被2到a 1之間的任何乙個整數整除,則a...
輸出100 200之間的素數。
輸出100 200之間的素數 對於素數n 只能被1和本身整除,不能被2 n 1之間的數整除的數 分析 運用模運算 n i 0 來判斷整數n是否能被i整除,來判斷n是否為素數。include includeint main if i j 因為對於素數來說,除一之外,另乙個約數就是他本身,所以當i和j相...