Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extension on int {
- List<int> getDivs(final bool Function(int) predicate) {
- final divs = List<int>.empty(growable: true);
- for (int i = 1; i * i <= this; i++) {
- if (this % i == 0) {
- if (predicate(i)) {
- divs.add(i);
- }
- if (i * i < this && predicate(this ~/ i)) {
- divs.add(this ~/ i);
- }
- }
- }
- return divs;
- }
- bool get isSimple {
- for (int i = 2; i * i <= this; i++) {
- if (this % i == 0) {
- return false;
- }
- }
- return true;
- }
- }
- extension on List<int> {
- List<int> sortAndGet() {
- sort();
- return this;
- }
- }
- extension IntIterableExt on Iterable<int> {
- static Iterable<int> createRange(final int startInclusive, final int endExclusive) =>
- Iterable.generate(endExclusive - startInclusive + 1, (x) => x + startInclusive);
- }
- extension IterableExt<T> on Iterable<T> {
- Iterable<T> withStep(final int step) {
- final list = List<T>.empty(growable: true);
- final thisList = toList();
- for (int i = 0; i < length; i += step) {
- list.add(thisList[i]);
- }
- return list;
- }
- void forEachIndexed(void Function(int, T) action) {
- final iter = iterator;
- for (int i = 0; i < length; i++) {
- iter.moveNext();
- action(i, iter.current);
- }
- }
- }
- void main(final List<String> arguments) =>
- IntIterableExt.createRange(2532000, 2532160)
- .where((element) => element.isSimple)
- .withStep(3)
- .forEachIndexed((ind, e) => print('${(ind + 1) + ind * 2} $e'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement