#Java, 67 bytes
Java, 67 bytes
s->!s.stream().anyMatch(p->s.stream().anyMatch(q->s.contains(p+q)))
Input is a Set<Integer>
. Tests:
import java.util.Arrays;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
public class SumFree {
public static void main(String[] args) {
sumFree(s->!s.stream()
.anyMatch(p->s.stream()
.anyMatch(q->s.contains(p+q)))); // formatted to avoid wrapping
}
public static void sumFree(Function<Set<Integer>, Boolean> func) {
test(func);
test(func, 4);
test(func, 1, 5, 7);
test(func, 16, 1, 4, 9);
test(func, 1, 4, 5, 7);
test(func, 0);
test(func, 3, 0);
test(func, 16, 1, 4, 8);
}
public static void test(Function<Set<Integer>, Boolean> func, Integer... vals) {
Set<Integer> set = Arrays.stream(vals).collect(Collectors.toSet());
System.out.format("%b %s%n", func.apply(set), set);
}
}
Output:
true []
true [4]
true [1, 5, 7]
true [16, 1, 4, 9]
false [0]
false [1, 4, 5, 7]
false [0, 3]
false [16, 1, 4, 8]