大佬們萌新求助啊
#include <stdio.h>
int main()
{
? ? int m, n;
? ? for(m=2; m<=50; m++)
? ? {
for(n=2; n<m; n++)
? ? ? ? {
? ? ? ? ? ? if( ?m/n==1 ? ?) ? ? ? //什么條件下跳出當前循環
? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? //這里應該退出當前循環了
}
? ? ? ? if(m == n) ? //n循環結束后,如果m=n的話就輸出m
? ? ? ? ? ? printf("%d ?", m);
}
return 0; ? ?
}?
? ? ” ? ? ? ?if( ?m/n==1 ? ?) ? ? ? //什么條件下跳出當前循環 ?“ ? ?這一行中如果一個數除以另一個數為一(一點幾制動取整吧)然后相等不就是素數么
2018-08-31
錯了,素數的概念是 素數的因數只有 1跟他本身 ,就例如 3 是素數,4 不是,因為 2*2? 等于 四,這是素數的概念
現在回答你的問題? 如果一個數除以另一個數為一(一點幾制動取整吧)然后相等不就是素數么 ,這里我們做個假設
4/4結果是1,4跟4相等,那么4是素數嗎?當然不是!這里應該填 m%n==0? 整個思路就成立了,如果 m % n 一直不等 0 ;那么 n < m 的for就一直循環到 n == m退出,那么 下面的判斷 m==n就成立,n就是素數。如果 m%n 在 n !=m 的時候==0了,m%n ==0 (4%2=0) 那么 n<m的for就退出了循環,n == m 不成立,那么n就不是素數。簡單來說,就是 n只要一直不滿足 m%n==0 ,它的for不滿足n<m退出時,那么n就是素數,滿足n<m的時候退出,n就不是素數??