素數的算法
#include <stdio.h>
int main()
{
??? int m, n;
??? for(m=3; 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;?? ?
}
看不太懂???求大神講解一下。比如說m%n==0這個地方和m==n這個地方?
2015-01-17
m%n==0 能整除
m == n 到了循環的結束?
質數(prime number)又稱素數,有無限個。一個大于1的自然數,除了1和它本身外,不能整除以其他自然數(質數),換句話說就是該數除了1和它本身以外不再有其他的因數;否則稱為合數。
2015-01-24
1不是素數,其實素數也就是質素!在我剛才發的程序中?printf("2 ");的2后面有空格,不要忘了!
2015-01-24
我覺得2也是素數,因此正確如下:
#include <stdio.h>
int main()
{
? ? int m, n;
? ? printf("2 ");
? ? for(m=3; 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; ? ?
}
2015-01-17
1, 2 都是素數