關於求素數的算法
首先要再提一下素數的概念:素數也可以稱之爲質數,即只能被1或者素數本身整除的數。
也就是說可以通過取餘數來求素數,我後來寫了很多代碼,都得不到正確的結果,一直會無法把類似於9這樣的數排除。
後來做了很多更改,得到了一個新的思路,可以讓某個要判斷是否是素數的數從2開始除,把被除數的數值範圍控制在2~max(判斷數)之間,如果餘數爲0,且被除數==除數(要判斷的數)便將這個數視爲素數,思路大概如下圖:
代碼實現
C語言代碼:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j,max;
scanf("%d",&max);
for(i=2;i<=max;i++)
{
for(j=2;j<=i;j++)
if(i%j==0)
break;
if(i==j)
printf("%d\n",i);
}
/*我給定一個範圍,從2開始到max,每個數都進行判斷,如果是素數就輸出,如果不是就跳過*/
system("pause");
return 0;
}
python代碼:
def fun():
max=int(input("enter:"))
for i in range(2,max+1): #此處要加1,如果不加1,會有報錯(至少我是這樣...)
for j in range(2,i+1): #同上
if i%j==0:
break
if i==j:
print("is:"+str(i))