C語言判斷一個數是否為素數
阿新 • • 發佈:2019-01-03
所謂素數,是指除了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;
}