dbm_snippet.pl 512 B

12345678910111213141516171819202122232425262728293031
  1. #!/usr/bin/perl
  2. use 5.020;
  3. use autodie;
  4. use warnings;
  5. use Math::GMPz;
  6. use ntheory qw(:all);
  7. eval { require GDBM_File };
  8. my $cache_db = "factors.db";
  9. dbmopen(my %db, $cache_db, 0444)
  10. or die "Can't create/access database <<$cache_db>>: $!";
  11. my $count = 0;
  12. while (my ($key, $value) = each %db) {
  13. if (is_pseudoprime($key, 2)) {
  14. #my @factors = split(' ', $value);
  15. #say "$key -> [@$value]";
  16. ++$count;
  17. }
  18. }
  19. say "There are $count Fermat pseudoprimes to base 2";
  20. dbmclose(%db);