博客
关于我
Objective-C实现求 1 到 20 的所有数整除的最小正数算法 (附完整源码)
阅读量:794 次
发布时间:2023-02-21

本文共 1632 字,大约阅读时间需要 5 分钟。

Objective-C 实现求 1 到 20 的所有数整除的最小正数算法

在 Objective-C 中,计算从 1 到 20 的所有数整除的最小正数可以通过求解这些数的最小公倍数 (Least Common Multiple, LCM) 来实现。最小公倍数与最大公约数 (Greatest Common Divisor, GCD) 的计算密切相关。以下是完整的实现步骤和代码示例。

计算最大公约数 (GCD)

首先,我们需要一个函数来计算两个整数的最大公约数。以下是常用的辗转相除法算法:

NSInteger gcd(NSInteger a, NSInteger b) {    while (b != 0) {        NSInteger temp = b;        b = a % b;        a = temp;    }    return a;}

求多个数的最小公倍数

为了计算多个数的最小公倍数,我们可以逐步计算这些数的两两最小公倍数。对于一个数列表来说,其最小公倍数等于该列表中每个数与其最大公约数的乘积的最小值。具体步骤如下:

  • 初始化最小公倍数为 1:我们可以将初始值设为 1,因为 1 与任何数的最大公约数都是该数。
  • 遍历列表中的每个数:对于每个数,计算其与当前最小公倍数的最大公约数。
  • 更新最小公倍数:将当前最小公倍数乘以该数的最大公约数,得到新的最小公倍数。
  • 实现代码

    以下是完整的 Objective-C 实现代码:

    #import 
    // 计算最大公约数NSInteger gcd(NSInteger a, NSInteger b) { while (b != 0) { NSInteger temp = b; b = a % b; a = temp; } return a;}// 计算多个数的最小公倍数NSInteger lcmListOfNumbers(NSArray
    *numbers) { NSInteger lcm = 1; for (NSInteger number in numbers) { if (number == 0) { return 0; } lcm = (lcm * gcd(lcm, number)) / number; } return lcm;}// 主程序入口点int main(int argc, char **argv) { NSBundle *mainBundle = [NSApplication sharedApplication].bundle; NSArray *numbers = [mainBundle localizedStringForKey:@"numbers"]; if ([numbers count] == 0) { return 0; } NSInteger result = [self lcmListOfNumbers:numbers]; printf("最小公倍数为:%ld\n", (long)result); return 0;}

    代码解释

  • 最大公约数计算:函数 gcd 使用辗转相除法来计算两个整数的最大公约数。
  • 最小公倍数计算:函数 lcmListOfNumbers 接收一个整数数组,逐步计算这些数的最小公倍数。
  • 主程序入口点:函数 main 是程序的执行起点,用于解析输入参数并调用 lcmListOfNumbers 计算结果。
  • 通过上述代码,可以轻松地在 Objective-C 中计算从 1 到 20 的所有数整除的最小正数。只需将数值范围调整至所需范围即可。

    转载地址:http://lgifk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现分解质因数(附完整源码)
    查看>>
    Objective-C实现切换数字的符号switchSign算法(附完整源码)
    查看>>
    Objective-C实现列主元高斯消去法(附完整源码)
    查看>>
    Objective-C实现创建多级目录(附完整源码)
    查看>>
    Objective-C实现删除重复的字母字符算法(附完整源码)
    查看>>
    Objective-C实现判断32位的数字是否为正数isPositive算法(附完整源码)
    查看>>
    Objective-C实现十进制转N进制算法(附完整源码)
    查看>>
    Objective-C实现十进制转八进制算法(附完整源码)
    查看>>
    Objective-C实现华氏温度转摄氏温度(附完整源码)
    查看>>
    Objective-C实现单例模式(附完整源码)
    查看>>
    Objective-C实现单向链表的反转(附完整源码)
    查看>>
    Objective-C实现单向链表的反转(附完整源码)
    查看>>
    Objective-C实现单字母密码算法(附完整源码)
    查看>>
    Objective-C实现单循环链表算法(附完整源码)
    查看>>
    Objective-C实现单词计数(附完整源码)
    查看>>
    Objective-C实现单链表反转(附完整源码)
    查看>>
    Objective-C实现博福特密码算法(附完整源码)
    查看>>
    Objective-C实现卡尔曼滤波(附完整源码)
    查看>>
    Objective-C实现卡尔曼滤波(附完整源码)
    查看>>
    Objective-C实现卡尔曼滤波(附完整源码)
    查看>>