#! /usr/local/bin/perl use Quantum::Superpositions ( UNARY => ['CORE::int'] ); sub factors { eigenstates (int($_[0] / any(2..$_[0]-1)) == ($_[0] / any(2..$_[0]-1))); } sub GCD { my ($x, $y) = @_; my $common = all(any(factors($x)), any(factors($y))); any(eigenstates $common) >= all(eigenstates $common); } while (<>) { chomp; my ($x,$y) = split; print "factors($x): ", join(",",factors($x)), "\n"; print "factors($y): ", join(",",factors($y)), "\n"; print "GCD($x,$y): ", GCD($x,$y), "\n"; }