C语言 使用函数判断素数

在大一的课本学习函数部分中,叫我们使用函数判断素数

首先定义函数prime(m)判断m是否为素数,当m为素数时返回1;当m不是素数时返回0。我们知道素数就是只能被1和本身整除的正整数,1不是素数,2是素数。

让我们来先构造好函数部分。

int prime(int m){
	int i,limit;
	    
	if(m<=1){            //小于等于1的数不是素数
		return 0;
	}else if(m==2){      //2是素数
		return 1;
	}else{               //其他情况:大于2的正整数
		limit=sqrt(m)+1;
		for(i=2;i<=limit;i++){
			if(m%i==0){
				return 0;//若m能被某个i整除,则m不是素数,返回0
			}
		}
                         //若循环正常结束,说明m不能被任何一个i整除,则m是素数,返回1
		return 1;
	}
}

完成函数部分后,让我们来编写完整的代码。

#include
#include
int prime(int m){
	int i,limit;
	
	if(m<=1){
		return 0;
	}else if(m==2){
		return 1;
	}else{
		limit=sqrt(m)+1;
		for(i=2;i<=limit;i++){
			if(m%i==0){
				return 0;
			}
		}
		return 1;
	}
}
int main(void){
	int a;
	printf("Enter a:");
	scanf("%d",&a);
	if(prime(a)==1){
		printf("yes!\n");    //a是素数
	}else{
		printf("no!\n");     //a不是素数
	}
	return 0;
}

同时我们也可以利用函数输出正整数m到n之间的全部素数

#include
#include
int prime(int m){
	int i,limit;
	
	if(m<=1){
		return 0;
	}else if(m==2){
		return 1;
	}else{
		limit=sqrt(m)+1;
		for(i=2;i<=limit;i++){
			if(m%i==0){
				return 0;
			}
		}
		return 1;
	}
}
int main(void){
	
	int k,m,n;
	printf("Enter m and n:");
	scanf("%d%d",&m,&n);
	for(k=m;k<=n;k++){
		if(prime(k)==1){
			printf("%d\n",k);
		}
	}
	return 0;
}

谢谢观看!

 

你可能感兴趣的:(c语言,算法,开发语言)