A计划 骑士救公主迷宫

day7-元组和字典

  返回  

C语言基础-判断质数(素数)

2021/7/20 20:14:58 浏览:

题目描述

素数又称质数。所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数。例如17就是素数,因为它不能被 2~16 的任一整数整除。
输入
输入一个数
输出
输出这个数是否为质数

样例输入

17

样例输出

17是一个质数

代码实现

#include "stdio.h"
#include "math.h" 

int main(){
	int num;
	bool result;
	printf("请输入一个数:");
	scanf("%d",&num);
	
	if(num<=1)
		result = false;
	else if(num==2)
		result=true;
	else{
		int i=2;
		int top =(int)sqrt(num); 
		for(;i<=top;i++)
			if(num%i==0) break;
			
		result=(i==top+1);
	}
	
	if(result)
		printf("%d是一个质数!",num);
	else{
		printf("%d不是一个质数",num);
	}

	return 0;
}

输出结果
质数判断
代码升级
“求某范围内的质数,并可指定每行打印的数量”

输入
输入开始范围和结束范围
输入每行打印的数量
输出
按打印要求这个范围内的所有质数

样例输入

请输入开始范围:1
请输入结束范围:100
请输入每行打印的数量:10

样例输出

2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97

代码实现

#include "stdio.h"
#include "math.h" 
//求这个数是否为质数 
bool isPrime(int num){
	if(num<=1) return false;
	if(num==2) return true;
	
	int i;
	int top=(int)sqrt(num);
	for(i=2;i<=top;i++)
	  if(num%i==0) break;
	return i==top+1;
}
int main(){
	int begin,end;
	int cnt;//计数 
	int	row;//每行打印的数量 
	printf("请输入开始范围:");
	scanf("%d",&begin);
	printf("请输入结束范围:");
	scanf("%d",&end);
	printf("请输入每行打印的数量:");
	scanf("%d",&row);
	for(int num=begin;num<=end;num++)
		if(isPrime(num)){
			printf("%d ",num);
			cnt++;
			if(cnt%row==0) printf("\n"); 
		}

	return 0;
}

输出结果
范围内质数判断

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号