| |
#!/usr/bin/perl -sw
use Quantum::Superpositions;
sub is_prime { return $_[0]==2 || $_[0] % all(2..sqrt($_[0])+1) != 0 }
do{print "$_ - простое число\n" if is_prime($_)} for map {2*$_+1} 1..1000;
на выводе имеем нечто вроде:
** Joe's Own Editor v2.9.5 ** Copyright (C) 2001 ** File demo_Primes.pl not changed so no update needed. [root@tv demo]# ./demo_Primes.pl 3 - простое число 5 - простое число 7 - простое число 11 - простое число 13 - простое число 17 - простое число 19 - простое число 23 - простое число 29 - простое число 31 - простое число 37 - простое число 41 - простое число 43 - простое число 47 - простое число 53 - простое число 59 - простое число 61 - простое число 67 - простое число 71 - простое число 73 - простое число 79 - простое число 83 - простое число 89 - простое число 97 - простое число 101 - простое число 103 - простое число 107 - простое число 109 - простое число [root@tv demo]#Или нужно получить все сомножители какого-то числа:
#!/usr/bin/perl -w
use Quantum::Superpositions UNARY => ['CORE::int'];
sub factors {eigenstates (int($_[0] / any(2..$_[0]-1)) == ($_[0] / any(2..$_[0]-1)))}
print int($_), "\n factors: ", join(",", factors($_)), "\n" while (<>);
На выводе имеем:
[root@tv demo]# ./factors.pl
8
8
factors: 2,4
121
121
factors: 11
56
56
factors: 7,8,14,2,4,28
78
78
factors: 13,39,2,3,26,6
[root@tv demo]#
теперь перевод полутора manual-ов, описывающих квантовый подход, при помощи
которого работают эти и некоторые другие программы(остальные примеры см. в самом низу текста);
|