4 # Eine Zahl die in sämtlichen Primzahlen zerlegt wird |
4 # Eine Zahl die in sämtlichen Primzahlen zerlegt wird |
5 |
5 |
6 use strict; |
6 use strict; |
7 use warnings; |
7 use warnings; |
8 use File::Basename; |
8 use File::Basename; |
9 #use Smart::Comments; |
9 |
10 #use diagnostics; |
10 #use diagnostics; |
11 |
11 |
12 my $ME = basename $0; |
12 my $ME = basename $0; |
13 |
|
14 #n: ist die Zahl aus der die sämtlichen Primzahlen gefiltert wird |
|
15 #i: Primzahl: diese wird durch n geteilt |
|
16 |
|
17 my $number = $ARGV[0]; |
|
18 |
13 |
19 if (not @ARGV) { |
14 if (not @ARGV) { |
20 # FIXME: be more verbose |
15 # FIXME: be more verbose |
21 die "$ME: Sorry, need the number\n"; |
16 die "$ME: Sorry, need the number\n"; |
22 } |
17 } |
23 |
18 |
|
19 my $number = $ARGV[0]; |
|
20 |
24 #1. find all divisors of $number |
21 #1. find all divisors of $number |
25 my @divisors = findDivisors($number); |
22 my @divisors = findDivisors($number); |
26 |
23 |
27 #2. delete all non primes |
24 #2. delete all non primes |
28 |
|
29 my @primes = (); |
25 my @primes = (); |
30 |
26 |
31 #for each element in array divisors |
27 #for each element in array divisors |
32 foreach my $div (@divisors) { #same element in div |
28 foreach my $div (@divisors) { #same element in div |
33 |
29 |
35 my @subprimes = findDivisors($div); |
31 my @subprimes = findDivisors($div); |
36 |
32 |
37 #determine length of subprimes and save in noOfDivisors |
33 #determine length of subprimes and save in noOfDivisors |
38 my $noOfDivisors = scalar(@subprimes); |
34 my $noOfDivisors = scalar(@subprimes); |
39 |
35 |
40 # |
|
41 if ($noOfDivisors == 0) {@primes = (@primes, $div); } |
36 if ($noOfDivisors == 0) {@primes = (@primes, $div); } |
42 } |
37 } |
43 |
38 |
44 #print"Die Teile von $number sind: ".join(", ", @divisors)."\n"; |
39 #print"Die Teile von $number sind: ".join(", ", @divisors)."\n"; |
45 #print"Die Primzahlteile von $number sind: ".join(", ", @primes)."\n"; |
40 #print"Die Primzahlteile von $number sind: ".join(", ", @primes)."\n"; |
46 |
41 |
47 my @xxx = xxx($number, @primes); |
42 # not sure about the name of the function! // .hs |
|
43 @primes = factorize($number, @primes); |
48 |
44 |
49 if (@xxx) { |
45 if (@primes) { |
50 print join("*", @xxx), "\n"; |
46 print join("*", @primes), "\n"; |
51 } |
47 } |
52 else { |
48 else { |
53 #print STDERR "Sorry, $number is prime itself!\n"; |
49 #print STDERR "Sorry, $number is prime itself!\n"; |
54 warn "Sorry, $number is prime itself\n!"; |
50 warn "Sorry, $number is prime itself\n!"; |
55 } |
51 } |