#!/usr/local/bin/perl use strict; no strict 'refs'; sub extended_euclid { $_[1] or return $_[0], 1, 0; my ($d, $x, $y) = extended_euclid ($_[1], $_[0] % $_[1]); $d, $y, $x - int ($_[0] / $_[1]) * $y; } sub loese_mod_eg { my ($d, $x, $y) = extended_euclid ($_[0], $_[2]); $_[1] % $d ? undef : map { ($x * $_[1] / $d % $_[2] + $_ * $_[2] / $d) % $_[2] } 0..$d-1; } print join (', ', &{$ARGV[0]} (splice @ARGV, 1)), "\n";