要求素數,首先咱們要知道什麼是素數,在解題的時候,不要急着去尋找方法解題,而是要先了解它的根本,才能夠在遇到相似題的時候輕鬆面對解決小程序
質數(prime number)又稱素數,有無限個。一個大於1的天然數,除了1和它自己外,不能被其餘天然數整除,換句話說就是該數除了1和它自己之外再也不有其餘的因數;不然稱爲合數。
ide
程序以下:優化
#include<stdio.h>spa
#include<stdlib.h>blog
int main()get
{it
int i;io
for (i = 100; i <= 200; i++) //也可自行設定數值範圍class
{效率
int j = 0;
for (j = 2; j <= i - 1; j++)
{
if (i%j == 0)
{
break;
} //若是i%j=0說明i能夠整除j,則跳出if語句
}
if (i == j)
{
printf("%d ", i);
}
}
system("pause");
return 0;
}
結果以下:
優化方案一:
int main()
{
int i;
for (i = 101; i <= 200; i+=2) //因爲100不是素數,因此能夠從101開始
{
int j = 0;
for (j = 2; j <= i - 1; j++)
{
if (i%j == 0)
{
break;
} //若是i%j=0說明i能夠整除j,則跳出if語句
}
if (i == j)
{
printf("%d ", i);
}
}
system("pause");
return 0;
}
優化方案二:
int main()
{
int i;
for (i = 101; i <= 200; i+=2) //因爲100不是素數,因此能夠從101開始
{
int j = 0;
for (j = 3; j <= i - 1; j++)
{
if (i%j == 0)
{
break;
} //若是i%j=0說明i能夠整除j,則跳出if語句
}
if (i == j)
{
printf("%d ", i);
}
}
system("pause");
return 0;
}
優化方案三:
int main()
{
int i;
for (i = 101; i <= 200; i+=2) //因爲100不是素數,因此能夠從101開始
{
int j = 0;
for (j = 3; j <= i - 1; j+=2)
{
if (i%j == 0)
{
break;
} //若是i%j=0說明i能夠整除j,則跳出if語句
}
if (i == j)
{
printf("%d ", i);
}
}
system("pause");
return 0;
}
優化方案四:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int i;
for (i = 101; i <= 200; i+=2) //因爲100不是素數,因此能夠從101開始
{
int j = 0;
for (j = 3; j <= sqrt(i); j+=2)
{
if (i%j == 0)
{
break;
} //若是i%j=0說明i能夠整除j,則跳出if語句
}
if (j>sqrt(i))
{
printf("%d ", i);
}
}
system("pause");
return 0;
}
寫程序最原始的目的多是解決某個題或者某個實際問題,可是,當之後咱們進入社會,你要解決的就所有都是實際問題,那時候你面對的可能不單單只是解決它,而是要不斷的優化它,要讓成本更低,時間更短,效率更高,而這種優化解決問題的思路,要從寫小程序開始培養。