3.6 欧几里得算法课堂测试

(应用密码学实验报告)实验1 密码学数学基础 在Educoder平台进行实验根据每个实训的每个关卡要求完成代码提交和测评 阅读详情

使用欧几里得算法实现求两个数的最大公约数。

算法:

1.较大的数除以较小的数,若余数为零,则较小的数是这两个数的最大公约数。

2.否则将除数换为被除数,余数换为除数,转到1继续执行至余数为零。


201111621302

1.算法实现:

class Gys{
	//递归实现
	public int gcd(int m,int n){
		if(m<n){
			int tmp = m;
			m = n;
			n = tmp;
		}
		
		if(n == 0)
			return m;
		else
			return gcd(n,m%n);
	}
	
	//非递归实现
	public int gcd2(int m,int n){
		if(m<n){
			int tmp = m;
			m = n;
			n = tmp;
		}
		
		if(n == 0)
			return m;
		
		while(n>0){
			int tmp = m%n;
			m = n;
			n = tmp;
		}
		return m;
	}
}


2.测试上述算法:

import java.util.Scanner;

public class Marking {

	public static void main(String[] args) {
		//测试上述欧几里得算法
		System.out.println("请依次输入两个整数:");
		int n=0,m=0;
		Scanner scan = new Scanner(System.in);
		try {
			n = scan.nextInt();
			m = scan.nextInt();
			Gys g = new Gys();
			System.out.println("递归实现测试:"+n+"和"+m+"的最小公约数是:"+g.gcd(n,m));
			System.out.println("非递归实现测试:"+n+"和"+m+"的最小公约数是:"+g.gcd2(n,m));
		} catch (Exception e) {
			System.out.println("输入有误,请重新输入!");
			Marking.main(null);
		}
	}
}

3.测试结果: 


     

     

     

4.总结:

    算法经测试求两数最大公约数正确。             

算法设计与分析绪论(我们为什么要学算法,算法为什么这么卷)[第一人称] 零.前言 这学期我们开设了算法设计与分析这堂课,出于对这位大佬博导的喜爱和对算法的兴趣,我打算写一系列的博文来记录我的一个学习过程,博主在重要的部分录了音,将十分详细地还原授课内容,力求将大佬的思想和方法讲透彻,提升自己的同时,也将这些内容分享给大家。本课内容共20讲,不出意外的话我会写20+篇博文来记录这一过程。 本篇文章是为绪论,即简单介绍了一下算法,上学期看了《大话数据结构》这本书,很喜欢里面的讲课方式,下面我也将和老师身份互换,以第一人称上这堂课。 ... 阅读详情

相关推荐

KNN课堂(分类课堂(可用kd树/特征归一化提高精度)))

2. weights:可以是'uniform'或者是'distance',表示在计算最近邻的距离时考虑的权重,'uniform'表示所有最近邻的距离权重都一样,而'distance'表示距离越近的最近邻权重越大。3. algorithm:可以是'ball_tree'、'kd_tree'或者'brute',表示使用何种算法来计算最近邻的距离。4. leaf_size:整数值,表示在构建 ball_tree 或者 kd_tree 时考虑的叶节点的尺寸。# 将数据集分为训练集和测试集。

youho111的博客 553

欧几里得算法实现

欧几里得算法用于计算两个正整数的最大公约数。原理就是a和b的公约数(a>b)等于b和 mod(a,b)的公约数(mod(a,b)!= 0),也等于mod(a,b)和mod(b,mod(a,b))的公约数。 假如mod(a,b)== 0,那么b就是最大公约数。当然所有b的约数也是a,b的约数。 实现1: 这是非递归实现方式。首先确保a > b,如果a % b != 0,那么就计算b...

qq_35134066的博客 760

欧几里德算法

欧几里德算法

算法打卡之快速幂

例题1:快速幂 给定 n 组 ai,bi,pi,对于每组数据,求出 的值。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含三个整数 ai,bi,pi。 输出格式 对于每组数据,输出一个结果,表示 的值。 每个结果占一行。 数据范围 1≤n≤100000, 1≤ai,bi,pi≤2×109 输入样例: 2 3 2 5 4 3 9 输出样例: 4 1 答案: import java.io.BufferedReader; import java.io.InputStreamReader; publ

weixin_51304175的博客 796

华为星闪SLE实战:手把手教你用HarmonyOS开发智能家居控制应用(附完整代码)

本文详细介绍了如何利用华为星闪SLE技术,结合HarmonyOS开发智能家居控制应用。通过对比传统无线技术,阐述了星闪SLE在低时延、高可靠性和高并发方面的优势,并提供了从环境搭建、设备发现、连接管理到核心控制代码的完整实战教程,帮助开发者快速上手这一无线短距通信技术。

bert9linguist的博客 506

自动驾驶传感器选型实战:摄像头、激光雷达与毫米波雷达融合策略

自动驾驶感知系统的核心在于多传感器协同,而非单一技术优劣。摄像头擅长语义识别但受光照和天气制约;激光雷达提供高精度测距却面临成本、温漂与多径干扰等物理瓶颈;毫米波雷达则以全天候鲁棒性与精准测速成为安全底线的守门人。三者融合不是简单叠加,而是基于场景约束(如暴雨、强光、高速跟车)、成本边界(BOM控制)与时间窗口(量产节奏)的工程权衡。真实量产方案中,‘纯视觉’实为视觉主责+毫米波兜底,‘激光雷达上车’本质是用硬件真值加速算法迭代,而传统车企更倾向以毫米波为仲裁者协调冲突。理解这些底层原理,才能在传感器选型、

weixin_32495691的博客 276

简单数论听课总结(欧几里得算法)

一、欧几里得算法 1、欧几里得算法:欧几里得算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 2、欧几里得算法定理: (1)定理:gcd(a,b)=gcd(b,a mod b) (2)证明:a可以表示成a=kb+r,则r=a mod b 假设d是a,b的一个公约数,则有a|d,b|d,而r=a-kb,因此r|d,因此d是(b,a mod b)的公约数,证明充分性; 假设

kt1776133839的博客 379

从临床试验到互联网AB测试:边缘结构模型(MSM)如何解决‘时依性混杂’这个老大难问题

本文探讨边缘结构模型(MSM)如何解决时依性混杂问题,适用于临床试验和互联网AB测试。通过逆概率加权(IPTW)等方法,MSM能有效剥离混杂效应,准确评估长期干预效果。文章结合跨领域案例,详细解析MSM的核心原理、实施步骤及在推荐算法效果评估中的实战应用,帮助读者掌握这一先进因果推断工具。

weixin_28725949的博客 207

算法学习|题目:求两个整数的最大公约数_欧几里得算法(基于Java)

求两个整数的最大公约数 知识补充 例如:40与15的最大公约数为5 知识补充: 1)若数a能被数b整除(也称数b能整除数a),a就叫做b的倍数,b就叫做a的约数。 2)M与N的最大公约数:能够同时整除M、N的数中最大的一个数称为M与N的最大公约数。 3)整除的性质:若两个数都能被a整除,则它们的差(大数-小数)也能被a整除。 即:设数M、N(若M > N)能被a整除,则(M - N)也能被...

RUIRUI14的博客 1407

奥比中光Dabai深度相机SDK在Ubuntu22.04的兼容性安装指南

本文详细指导如何在Ubuntu22.04系统上安装奥比中光Dabai深度相机的SDK。针对新旧版本不兼容的核心问题,重点推荐使用经过验证的v1.10.18版本SDK,并提供了从系统依赖检查、SDK下载安装、Python环境配置到编译测试的完整步骤,帮助用户成功解决安装难题并实现相机驱动。

j2k3l4的博客 1000

从SPI到JTAG:玩转FT2232H的MPSSE多协议切换指南(附配置代码)

本文详细介绍了如何利用FT2232H芯片的MPSSE技术实现SPI与JTAG协议的无缝切换,提供配置代码和调试技巧。通过解析MPSSE引擎架构和硬件特性,帮助开发者灵活应对多种串行协议需求,提升嵌入式开发效率。特别适合FPGA调试和物联网设备开发场景。

sun99的博客 254

64位RSA算法

64位RSA算法 此为博主在学习密码学时完成的课堂任务,有关于64位的RSA密码算法。 64位的RSA算法 基本原理 RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。 基本流程 (1)任意选取两个不同的大素数 p 和 q 计算乘积 n = pq, F_n = (p - 1) (q - 1); (2)任意选取一个大整数 e,满足 gcd(e, F_n) = 1,整数 e 用做加密钥(注意: e 的选取是很容易的,例如.

qq_45832614的博客 2257

保姆级教程:用CST 2023一步步复现一个1-8GHz Vivaldi天线(含参数优化与结果分析)

本文提供了一份详细的CST 2023教程,指导读者如何从零开始设计并优化1-8GHz Vivaldi天线。内容涵盖工程设置、参数化建模、仿真加速技巧以及性能优化策略,特别适合需要实现宽带天线设计的工程师和研究人员。通过实战案例,帮助用户掌握Vivaldi天线的核心设计要点和CST高级功能应用。

weixin_30800987的博客 618

9.22“月饼杯”递归算法欢乐赛测试报告总结

本测试主要考查上周学习内容“递归算法”,题目主要是将原来学过或写过的算法改写成递归,比如说倒序数、欧几里得定理、斐波那契数列,难度较低;也有两个题难度较大,比如双色汉诺塔(汉诺塔是世界上最难玩的游戏之十,但这儿难度加大双色的哦,但xrq同学果断AC)、还有最后一题背包问题(其实是想考查大家学习递归的一个拓展简单搜索,标程是我自己写的,因为网上找了半天都不合适),总共39...

weixin_30389003的博客 91

AI智算-K8s如何利用GPFS分布式并行文件存储加速训练or推理

GPFS(General Parallel File System,通用并行文件系统)是由 IBM 开发的高性能分布式文件系统,最初设计于 1990 年代,用于满足高性能计算(HPC)环境对大规模数据存储和访问的需求。GPFS 现已广泛应用于企业级存储、云计算、大数据分析、人工智能和媒体处理等领域。它以其高性能、可扩展性和可靠性著称,能够支持从小型集群到超大规模系统的各种部署场景。

Kason_iWiki 1131

通信算法之283:大疆DJI云哨系统-DJI DroneID物理层协议-解速率匹配及Turbo译码

3. 完整云哨接收机,接收灵敏度。交流: 1279682290 ,2. Turbo译码模块。1. 解速率匹配模块。

leegang12的专栏 868

2014年百度之星程序设计大赛 - 资格赛 1002 Disk Schedule(双调欧几里得旅行商问题)

Problem Description 有很多从磁盘读取数据的需求,包括顺序读取、随机读取。为了提高效率,需要人为安排磁盘读取。然而,在现实中,这种做法很复杂。我们考虑一个相对简单的场景。磁盘有许多轨道,每个轨道有许多扇区,用于存储数据。当我们想在特定扇区来读取数据时,磁头需要跳转到特定的轨道、具体扇区进行读取操作。为了简单,我们假设磁头可以在某个轨道顺时针或逆时针匀速旋转,旋转一周的时间是36

逆风的方向 更适合飞翔 2608

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

通义千问3-Reranker-0.6B:教育行业知识库应用

本文介绍了如何在星图GPU平台上自动化部署通义千问3-Reranker-0.6B镜像,赋能教育行业知识库精准检索。该模型专用于重排序任务,可显著提升教师备课、学生自主学习等场景中对教学案例、政策文件、课堂实录等内容的语义匹配准确率,解决‘搜得到但搜不准’的核心痛点。

weixin_33622085的博客 109

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

欧几里得证明:公理化思维的现代工程实践指南

公理化体系是形式化推理的根基,它通过不可证的初始命题(公设与公理)出发,经由演绎推理生成可靠结论——这一逻辑范式远不止于数学史,而是编程条件结构、法律因果链、产品需求验证等工程实践的底层操作系统。其核心价值在于构建抗脆弱的逻辑链条:每一步推导都可追溯、可验证、可复现。从尺规作图的具身认知到反证法的矛盾检测,从Python模拟证明依赖树到会议纪要逻辑审计,欧氏方法论正以构造性证明、演绎推理等热词所代表的思维工具,在算法设计、系统验证与跨领域决策中持续释放技术生命力。

aikunjiao3421的博客 435

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

杨校老师课堂之带你备战【C++】GESP五级_一个月规划

掌握埃氏筛法(复杂度 O(nlog⁡log⁡n)O(nloglogn))和线性筛(欧拉筛,复杂度 O(n)O(n)),重点练习质数判断、质因数分解(短除法)、唯一分解定理。手写归并排序(稳定,复杂度 O(nlog⁡n)O(nlogn))和快速排序(不稳定,平均 O(nlog⁡n)O(nlogn)),分析递归分治的过程。实现大整数加减乘除的模拟运算,重点练习字符串与数组的转换逻辑,解决如阶乘求和、大数乘法等典型问题。典型题目:区间调度、背包问题(部分背包)、找零问题,理解局部最优到全局最优的推导逻辑。

杨校的博客 1429

大数据深度学习|计算机毕设项目|计算机毕设答辩|PyQt基于课堂随机抽问系统(dlib+cnn)-大数据深度学习算法毕设毕业设计项目

在当今教育信息化的大背景下,课堂互动是提高教学质量和学生参与度的重要手段之一。传统的课堂提问方式往往存在一定的局限性,如可能倾向于提问固定的一小部分学生,而忽视了其他学生的参与。因此,开发一套能够实现课堂随机抽问的系统,对于促进教育公平、提高课堂互动性和趣味性具有重要意义。本研究基于PyQt框架,结合dlib人脸识别库和卷积神经网络(CNN)技术,设计与实现了一套课堂随机抽问系统,其研究背景与意义如下:首先,该系统有助于提高课堂管理的效率。通过自动化抽问过程,可以更有效地管理课堂时间,减少传统抽问方式中可能

2401_89210028的博客 625

最佳(optimal)置换算法_JavaScript 算法与数据结构

更多精彩,请点击上方蓝字关注我们!README.mdJavaScript 算法与数据结构本仓库包含了多种基于 JavaScript 的算法与数据结构。每种算法和数据结构都有自己的 README 并提供相关说明以及进一步阅读和 YouTube 视频。数据结构数据结构是在计算机中组织和存储数据的一种特殊方式,它可以高效地访问和修改数据。更确切地说,数据结构是数据值的集合,它们之间的关系、函数...

weixin_39983563的博客 727

密码学实验3记录

这次 RSA 实验让我深刻体会到了密码学 “理论与实践并重” 的特点。课堂上看似简单的公式,在实际实现时会遇到各种细节问题;而看似牢不可破的算法,在参数选择不当的情况下也会变得不堪一击。密码学是一门严谨的科学,任何一点疏忽都可能导致灾难性的后果。作为未来的计算机从业者,我们不仅要会使用加密工具,更要理解其背后的原理,才能设计出真正安全的系统。

W_lx_xd的博客 187

程序设计方法学--2019/03/22--“Hankson的趣味题”

程序设计方法学--2019/03/22--“Hankson的趣味题”一、基本要求二、提高要求三、算法设计1. 基础要求2. 提高要求四、调试和测试1. 调试(基本要求)2. 调试(提高要求)3. 测试(基础要求)4. 测试(提高要求)五、总结与归纳 一、基本要求 求N个数的最大公约数和最小公倍数。用C或C++或java或python语言实现程序解决问题。 1. 程序风格良好(使用自定义注释模板...

weixin_41570565的博客 521

C++实现RSA文件加密:从算法原理到工程实践完整指南

非对称加密是信息安全领域的核心技术,其核心原理基于大数分解等数学难题,通过公钥与私钥的配对实现安全通信。RSA作为最经典的非对称加密算法,其技术价值在于为数字签名、密钥交换和安全传输提供了基础保障,广泛应用于网络通信、数字证书和文件保护等场景。本文聚焦于RSA算法的工程实现,深入探讨了C++环境下的大数运算、快速模幂算法和文件分块处理等关键模块,并结合米勒-拉宾素性检验和PKCS#1填充方案,详细解析了如何构建一个完整的文件加密工具。通过从底层实现RSA核心流程,读者不仅能深入理解非对称加密的工作机制,还能

weixin_29323273的博客 245

KNN(K近邻算法)-python实现

KNN算法是一种基于实例的分类方法,通过计算待分类元素与训练样本的距离来预测类别。本文实现了一个加权KNN分类器,使用欧几里得距离计算相似度,并处理了平票情况。在鸢尾花数据集上的实验表明,当训练集占比达90%时,准确率可达100%。代码展示了数据分割、距离计算和加权处理等关键步骤,并记录了不同K值和训练比例下的准确率变化。结果表明,K值对结果影响较小,而训练数据量对准确率提升更显著。

2401_86399278的博客 661
下一篇: 第一周作业 -- 算法概论思维导图
MisterPan
博客等级 码龄14年 9粉丝 37原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值