判斷素數
- 算法思想
1、素數即部可被除本身和1以爲其它數整除;
2、因爲有大小限制所以考慮用for循環實現;
3、條件表達式的運用注意。 - 代碼如下:
//判斷素數的程序
#include<stdio.h>
int main()
{
int a;
int i;
int isprime=1; //判斷變量
printf("請輸入一個整數:");
scanf("%d",&a);
for(i=2;i<a;i++){
if(a%i==0){ //當餘數不爲0時,不運行條件體內語句
isprime=0;
break; //能被整除時直接跳出循環
}
}
if(isprime==1) //break跳出循環時isprime爲0,執行else語句。
printf("%d是素數",a);
else
printf("%d不是素數",a);
return 0;
輸出結果:
請輸入一個整數:21
21不是素數
--------------------------------
Process exited after 3.564 seconds with return value 0
請按任意鍵繼續.
代碼分析:
if(a%i==0) 同等於 if(!(a%i));
if(isprime==1) 中isprime的值不等於1;執行if後語句。
這裏尤其要注意條件表達式中,非0(包括負數)即爲正,0爲負。
- 代碼如下:
//判斷素數的程序
#include<stdio.h>
int main()
{
int a;
int i;
// int isprime=1; //a是素數
printf("請輸入一個整數:");
scanf("%d",&a);
for(i=2;i<a;i++){
if(!(a%i)){
// isprime=0;
break;
}
}
// if(isprime==1)
if (i<a)
printf("%d不是素數",a);
else
printf("%d是素數",a);
return 0;
}
代碼輸出:
請輸入一個整數:113
113是素數
--------------------------------
Process exited after 4.935 seconds with return value 0
請按任意鍵繼續. . .
代碼分析:
這裏取消了素數判定開關,改爲檢測循環計數i和輸入值的大小,如果爲素數時,只有當循環計數累加至a時纔會跳出循環,執行下一條條件語句中的else後語句。