1234567891011121314151617181920212223242526 |
- #!/usr/bin/ruby
- func binprime(p) {
- p >= 2 || return false;
- range(1, p>>1).each { |i|
- (binomial(p, i) % p) && return false;
- };
- return true;
- }
- func coef(n, e) {
- (e == 0) && return "#{n}";
- (n == 1) && (n = "");
- (e == 1) ? "#{n}x" : "#{n}x^#{e}";
- }
- func binpoly(p) {
- join(" ", coef(1, p), p.range.reverse.map {|i|
- join(" ", %w(+ -)[(p-i)&1], coef(binomial(p, i), i));
- }...);
- }
- say "expansions of (x-1)^p:";
- 10.range.each { |i| say binpoly(i) };
- say "Primes to 80: [#{(2..80).grep { binprime(_) }}]";
|