用循环法求swift中一个数的最大因子
我目前正在尝试在swift Playerd中创建一个代码,在使用循环时查找数字的第二大因子(而不是数字本身)。我已经知道了如何显示一个数字的所有因子,但是有没有简单的方法让它只显示一个因子呢 例:“15”应该是“5” 谢谢 更新代码:用循环法求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
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