Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
g (var x)
{
var tmp1 = f*x
tmp1 = tmp1 * 2
return tmp1
} static public Set<Integer> factors(int number) {
HashSet<Integer> factors = new HashSet<Integer>();
for (int i = 1; i <= sqrt(number); i++)
if (isFactor(number, i)) {
factors.add(i);
factors.add(number / i);
}
return factors;
}public List<Integer> factors(final int number) {
return range(1, number+1).filter(new F<Integer, Boolean>() {
public Boolean f(final Integer i) {
return number % i == 0;
}
});
}sum(factors(number)) - numberisPerfect = (== number).reducedFactorSum
isAbundant = (> number).reducedFactorSum
isDeficiend= (< number).reducedFactorSumrange(1, sqrt(number)+1) No instance for (RealFrac Int)
arising from a use of `ceiling'
Possible fix: add an instance declaration for (RealFrac Int)
In the expression: ceiling
In the expression: ceiling $ sqrt n
In the second argument of `filter', namely
`[1 .. ceiling $ sqrt n]'_factors.add(_number); в первом листинге в конструкторе не нужно делать? Надо же исключить само число из суммы его делителей.
Functional thinking: Thinking functionally, Часть 1