1.素數是壹個大於1的自然數,除了1和它本身外,不能被其他自然數整除,換句話說就是該數除了1和它本身以外不再有其他的因數;
2.在數據處理時只需要判讀他的因子除了1和他本身就行了,而且只用計算到 這個數的開方就行了,因為後面的因子和前面的就會倒過來。如同 24 -> 2 x 12 和 12 x 2 壹樣。
#include<stdio.h>int?IsPrime(int?n)?//?判斷是否為素數
{
if?(n?<=?1)?return?0;
if?(n?%?2?==?0)?return?n?==?2;?//?如果是偶數,只要不是2,其他都是非素數
for?(int?i?=?3;?;?i?+=?2)
{
if?(i?>?n/i)?break;?//?等價於?i*i?>?n,?不用開方
if?(n?%?i?==?0)?return?0;
}
return?1;
}
int?main()
{
int?i,?cnt?=?0;
for?(i?=?1;?i?<?100;?i++)
{
if?(IsPrime(i))
{
printf("%3d?",?i);
if?(++cnt%5?==?0)//?每5個換行
printf("\n");
}
}
return?0;
}