C語言:判斷是否爲素數

判斷素數

  1. 算法思想
    1、素數即部可被除本身和1以爲其它數整除;
    2、因爲有大小限制所以考慮用for循環實現;
    3、條件表達式的運用注意。
  2. 代碼如下:
//判斷素數的程序 
#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爲負。

  1. 代碼如下:
//判斷素數的程序 
#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後語句。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章