线性计算给定两个自然数的最大公因子,最小公倍数和最小自然数比
来源:互联网 发布:淘宝卖食品要什么条件 编辑:程序博客网 时间:2024/06/12 01:36
#include <iostream>
#include "time.h"
#include "math.h"
using namespace std;
void calculation(int64_t m1, int64_t m2)
{
string e="there is not common factor between them";
int64_t larger_number; int64_t less_number;
int64_t k1 = 0; int64_t k2 = 0;
if(m1 == m2) throw e;
else
{
if(m1 > m2)
{
larger_number = m1; less_number = m2;
}
else
{
larger_number = m2; less_number = m1;
}
int64_t n = (larger_number>>1) + 1;
if(n < less_number) n = less_number;
int64_t s = 1;
for(int64_t k = 0; k < n; k++)
{
if(s <= m1)
{
s = s + m2; k1++;
}
if(s > m1)
{
s = s - m1; k2++;
}
if(s == 1)
{
cout<< "The integer retio is "<< k1<<" : "<<k2<<endl; // 打印最小自然数比
cout<< "The loops are "<<(k+1)<<endl;
cout<< "the greatest common number is "<< (m1/k1)<<endl; // 打印最大公因子
cout<< "The minimum common multiple is "<< (m1*k2)<<endl; // 打印最小公倍数
break;
}
}
if(s != 1) throw e;
}
}
int main()
{
int64_t number_1 = 45;
int64_t number_2 = 100;
cout<< "given two numbers are "<< number_1<<", "<<number_2<<endl; // 打印给定的两个自然数
if(!number_1 || !number_2){cout<< "Each number must be greater than zero "<<endl; return 0;} // 检查数据类型
try{ calculation(number_1, number_2);}
catch(string e)
{
cout<<e<<endl;
cout<<"\n"<< "The minimum common multiple is "<< (number_1*number_2)<<endl;// 打印最小公倍数,当两数不存在公因子时
}
return 0;
}
代码为C++ ;时间复杂性为 Θ(c)≤T≤ O(n)。想知道怎么来的,当评论到达20个将公布。
- 线性计算给定两个自然数的最大公因子,最小公倍数和最小自然数比
- 多项式时间O(nn)内计算n个自然数的最大公因子,最小公倍数及最小自然数比
- 求两个数的最大公因子和最小公倍数的研究
- 求两个数的最大公因子
- 求两个正整数的最大公因子。
- 求两个自然数的最小公约数
- 一个无序自然数数列,给定一个数M,选取自然数数列中两个数,其中他们的和是M,打印所有这样的自然数对
- 算法 - 求两个自然数的最小公倍数(C++)
- 求自然数序列的最小公倍数
- 求最小公倍数以及最大公因子
- 自然数的计算
- 欧几里得算法求两个正整数的最大公因子
- 用欧几里得算法求两个正整数的最大公因子
- 计算机设计与艺术——给定两个正整数,求它们最大公因子
- 自然数的和之和
- 两个自然数的寻找过程
- 输出自然数n的所有因子
- 蓝桥杯 求自然数序列的最小公倍数
- 【C++11】nullptr关键字
- Python 操作amazon s3
- 第三篇:知其然,知其所以然-USB音频设备的开发过程
- 组件换行:自定义布局的使用
- android mtp简介
- 线性计算给定两个自然数的最大公因子,最小公倍数和最小自然数比
- Oracle客户端安装简述
- ora-01536报错问题解决办法
- 一个遍历当前子目录的Makefile
- J2EE资料
- FactoryBean和BeanFactory
- 线上线下 服务到家
- 提高mongodb查询效率的方法--学习
- ios KVC KVO的使用