当前位置: 首页 > news >正文

求最大公约数、最小公倍数、

一、求两个数的最大公约数

解法一:
在这里插入图片描述

int main()
{
	int a = 0;
	int b = 0;
	scanf("%d%d", &a, &b);
	int min = (a > b) ? b : a;//18 24
	int m = 0;

	//假设m就是最大公约数
	for (m = min; m >= 1; m--)
	{
		if (a % m == 0 && b % m == 0)
		{
			break;
		}
	}
	printf("最大公约数是:%d\n", m);

	return 0;
}

解法二:辗转相除法
在这里插入图片描述

int main()
{
	int a = 0;
	int b = 0;
	scanf("%d%d", &a, &b);
	
	while (a % b != 0)
	{
		int c = a % b;
		a = b;
		b = c;
	}
	printf("最大公约数为: %d\n",b);
	return 0;
}

二、求两个数的最小公倍数

在这里插入图片描述

//给定两个数,求这两个数的最小公倍数
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d%d", &a, &b);

	int max = a > b ? a : b;
	int m = 0;//假设m是a,b的最小公倍数
	for (m = max; m >= max; m++)
	{
		if (m % a == 0 && m % b == 0) {
			break;
		}
	}
	printf("最小公倍数为:%d\n",m);
	return 0;
}

三、求1000-2000年之间的闰年

首先要知道什么是闰年:
普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
什么是闰年

int main()
{
	int year = 0;
	int cont = 0;
	for (year = 1000; year <= 2000; year++)
	{
		/*if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
		{
			printf("%d ", year);
			cont++;
		}*/
		
		if (year % 4 == 0) 
		{
			if (year % 100 != 0)
			{
				printf("%d ", year);
				cont++;
			}
		}
		if (year % 400 == 0)
		{
			printf("%d ", year);
			cont++;
		}
	}
	printf("\ncont = %d\n",cont);
	return 0;
}

四、判断100-200之间的素数

1、素数又叫质数。素数,指的是“大于1的整数中,只能被1和这个数本身整除的数”。

2、素数也可以被等价表述成:“在正整数范围内,大于1并且只有1和自身两个约数的数”。
什么是素数
在这里插入图片描述

int main()
{
	int cont = 0;
	int i = 0;
	//产生100-200之间的数
	for (i = 101; i <= 200; i++)
	{
		//用产生的数  除以比它本身小1的数(从2开始)
		//比如:101  你只能从2开始除到100
		int j = 0;
		int flag = 0; //如果flag=0,那i就是素数,flag是1,i不是素数
		for (j = 2; j < i - 1; j++)
		{
			//试除法 如果i % j == 0 说明j能被i整除,那i就不是素数
			if (i % j == 0)
			{
				flag = 1;
				break;
			}
		}
		if (flag == 0)
		{
			printf("%d ",i);
			cont++;
		}
	}
	printf("\ncont = %d",cont);
	return 0;
}

优化1:
在这里插入图片描述

#include<math.h>
int main()
{
	int cont = 0;
	int i = 0;
	//产生100-200之间的数
	for (i = 101; i <= 200; i++)
	{
		int j = 0;
		int flag = 0; //如果flag=0,那i就是素数,flag是1,i不是素数
		for (j = 2; j <= sqrt(i); j++)
		{
			//试除法 如果i % j == 0 说明j能被i整除,那i就不是素数
			if (i % j == 0)
			{
				flag = 1;
				break;
			}
		}
		if (flag == 0)
		{
			printf("%d ",i);
			cont++;
		}
	}
	printf("\ncont = %d",cont);
	return 0;
}

优化2:在原来判断数当中减少判断的数量
在这里插入图片描述

#include<math.h>
int main()
{
	int cont = 0;
	int i = 0;
	//产生100-200之间的数
	for (i = 101; i <= 200; i+=2)
	{
		int j = 0;
		int flag = 0; //如果flag=0,那i就是素数,flag是1,i不是素数
		for (j = 2; j <= sqrt(i); j++)
		{
			//试除法 如果i % j == 0 说明j能被i整除,那i就不是素数
			if (i % j == 0)
			{
				flag = 1;
				break;
			}
		}
		if (flag == 0)
		{
			printf("%d ",i);
			cont++;
		}
	}
	printf("\ncont = %d",cont);
	return 0;
}

相关文章:

  • 15、IOC 之ApplicationContext 的附加功能
  • Hive sql 行列转换(行转列,列转行)
  • 【MATLAB教程案例10】使用MATLAB自带的LDPC工具箱实现LDPC编译码误码率仿真
  • 小学数学学习:神奇的走马灯数 142857
  • 【OFDM系列6】MIMO-OFDM系统模型、迫零(ZF)均衡检测和最小均方误差(MMSE)均衡检测原理和公式推导
  • 点云处理简介
  • 跨域问题以及经过网关二次转发重复跨域
  • 自动控制原理9.2---线性系统的可控性与可观测性(上)
  • DOM事件流+阻止冒泡事件+dom包含
  • ZYNQ之GPIO机制
  • 第二章:Qt下载与安装 之 2.2 Qt安装
  • 一种基于堆的链式优先队列实现(使用golang)
  • 【笔记】文献阅读[YOLOV2]-YOLO9000: Better, Faster, Stronger
  • 【JVM基础】方法区
  • Delphi的函数指针传递和调用
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 「译」Node.js Streams 基础
  • Android开源项目规范总结
  • eclipse的离线汉化
  • flask接收请求并推入栈
  • idea + plantuml 画流程图
  • Java 23种设计模式 之单例模式 7种实现方式
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Java编程基础24——递归练习
  • Java的Interrupt与线程中断
  • JS 面试题总结
  • magento2项目上线注意事项
  • React Transition Group -- Transition 组件
  • socket.io+express实现聊天室的思考(三)
  • SpingCloudBus整合RabbitMQ
  • SQL 难点解决:记录的引用
  • Zsh 开发指南(第十四篇 文件读写)
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 简单基于spring的redis配置(单机和集群模式)
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 前端之Sass/Scss实战笔记
  • 什么软件可以剪辑音乐?
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 国内开源镜像站点
  • 进程与线程(三)——进程/线程间通信
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • # Apache SeaTunnel 究竟是什么?
  • # Java NIO(一)FileChannel
  • (4)STL算法之比较
  • (libusb) usb口自动刷新
  • (独孤九剑)--文件系统
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (算法二)滑动窗口
  • (转)visual stdio 书签功能介绍
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .bat批处理(三):变量声明、设置、拼接、截取