1. 程式人生 > >C語言判斷一個數是否為素數

C語言判斷一個數是否為素數

所謂素數,是指除了1和本身之外,不能被其他任何整數整除的數。

判斷一個數n(n>=3)的方法:將n作為被除數,將2到(n-1)各個整數先後做除數,如果都不能被整除,則n為素數。

演算法分析:

S1:輸入n的值

S2:i=2(i作為除數)

S3:n被i除,得餘數r,r=0,表示n能被i整除,則n不是素數,演算法結束。

S4:i=i+1;如果i<=n-1,返回s3,否則n為素數。

程式碼:

#include<stdio.h>


int main (void)
{
int i,j;
int temp;
scanf("%d",&i);
for(j=2;j<=i-1;j++)
{
if(i%j==0)
{
printf("不是素數.\n");
return 0;
}


}
printf("是素數.\n");
return 0;
}

改進:實際上,n不必被2到(n-1)的整數除,只需被2到n/2間整除即可,甚至只需要被2到(n^(1/2))整除即可。如果i<=sqrt(n),返回S3,否則演算法結束。

程式碼;

#include<stdio.h>


int main (void)
{
int i,j;
int temp;
scanf("%d",&i);
for(j=2;j<=i-1;j++)
{
if(i%j==0)
{
printf("不是素數.\n");
return 0;
}


}
printf("是素數.\n");
return 0;
}