Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用循环法求swift中一个数的最大因子_Swift_Loops - Fatal编程技术网

用循环法求swift中一个数的最大因子

用循环法求swift中一个数的最大因子,swift,loops,Swift,Loops,我目前正在尝试在swift Playerd中创建一个代码,在使用循环时查找数字的第二大因子(而不是数字本身)。我已经知道了如何显示一个数字的所有因子,但是有没有简单的方法让它只显示一个因子呢 例:“15”应该是“5” 谢谢 更新代码: var number = 15 for i in 2...number { if number % i == 0 { while (number % i == 0) { number /= i

我目前正在尝试在swift Playerd中创建一个代码,在使用循环时查找数字的第二大因子(而不是数字本身)。我已经知道了如何显示一个数字的所有因子,但是有没有简单的方法让它只显示一个因子呢

例:“15”应该是“5”

谢谢

更新代码:

var number = 15

for i in 2...number {
    if number % i == 0 {
        while (number % i == 0) {
            number /= i
            }
            print(i)
        }
    }

这就是我到目前为止所拥有的。。我是一名初学者(上课3周)

如果你想显示第二大因素,除了编号之外的最后一个因素是最大的

忽略效率,此代码将起作用:

var number = 15

var theSecondLargestFactor: Int = 1
for i in 2..<number { //Ignore the largest factor `number` itself
    if number % i == 0 {
        //Replace `theSecondLargestFactor` when a larger factor is found
        theSecondLargestFactor = i
    }
}
print(theSecondLargestFactor) //->5

这似乎更像您的代码。

您应该在找到所有因素的地方包含代码,并查看是否可以修改为只提供一个(可能会)。您必须尝试一些代码,请毫不犹豫地提供它!展示你是如何展示所有因素的。你是在谈论主要因素吗?给定的数字乘以1是显而易见的解决方案。你肯定试过了。不要犹豫,展示你的尝试,这样看起来就不会像是“为我写代码”的问题!一个数的最大因子是非常小的,它是数本身。请澄清,你想要第二大因素?还是最大的主要因素?
var number = 100

var theLargestPrimeFactor: Int = 1
for i in 2...number { //The `number` itself may be the largest prime factor, so include it
    while number % i == 0 {
        number /= i
        theLargestPrimeFactor = i
    }
}
print(theLargestPrimeFactor) //->5