1 2 3 4 5 6 7 8
print "Bitte angeben bis welche Zahl sie alle Primzahlen möchten!\n"; $grenze=<stdin>; for($a=2;$a<=$grenze;$a++){ for($b=2;$b<$a;$b++){ $wert=$a%$b; if($wert==0 ){ last } else {print "$a\n"}; }}
Guest DominikCode (perl): (dl )1 2 3 4 5 6 7 8print "Bitte angeben bis welche Zahl sie alle Primzahlen möchten!\n"; $grenze=<stdin>; for($a=2;$a<=$grenze;$a++){ for($b=2;$b<$a;$b++){ $wert=$a%$b; if($wert==0 ){ last } else {print "$a\n"}; }}
hab bis jetzt dies, es funktioniert
2017-12-14T01:01:59 hlubenowSchon in der inneren Schleife einen Wert auszugeben, ist wohl auch nicht so gut. ;)
1 2 3 4 5 6 7 8
sub is_prime { my $number = shift; # hier testest du ausschließlich, ob $number prim ist } for (my $a = 2; $a <= $grenze; ++$a) { say "$a ist prim" if is_prime($a); }
for (my $a = 3; $a <= $grenze; $a+=2) {
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
print"bitte eingeben bis zur welchen Zahl sie alle Primzahlen angezeigt haben wollen\n"; $grenze=<STDIN>; chomp($grenze); int($grenze); for($a=3;$a<=$grenze;$a++) { $prim = 1; for($b=2;$b<$a;$b++){ if($a % $b == 0){ $prim = 0; last; } } if($prim == 1) { print $a."\n"; } }
2017-12-14T17:39:05 DominikCode (perl): (dl )1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17print"bitte eingeben bis zur welchen Zahl sie alle Primzahlen angezeigt haben wollen\n"; $grenze=<STDIN>; chomp($grenze); int($grenze); for($a=3;$a<=$grenze;$a++) { $prim = 1; for($b=2;$b<$a;$b++){ if($a % $b == 0){ $prim = 0; last; } } if($prim == 1) { print $a."\n"; } }
wir haben der Vorlesung <stdin> klein geschrieben gekernt, und nie strict benutzt.
https://perldoc.perl.org/perlop.html#I%2fO-OperatorsThe filehandles STDIN, STDOUT, and STDERR are predefined. (The filehandles stdin , stdout , and stderr will also work except in packages, where they would be interpreted as local identifiers rather than global.) Additional filehandles may be created with the open() function, amongst others. See perlopentut and open for details on this.
2017-12-16T02:01:09 hlubenowFang' lieber bei 2 an, sonst kriegst Du die 2 nicht mit.
2017-12-16T02:01:09 hlubenowint() ist überflüssig, Perl-Variablen sind Skalare.
2017-12-16T19:19:11 RaubtierEs hätte also hier $x = int($x); heißen sollen!
2017-12-16T19:19:11 RaubtierAuch deine weitere Aussage, Perl-Variablen seien Skalare, ist offensichtlich falsch, da es ja Arrays und Hashes gibt.
2017-12-17T00:07:51 hlubenow2017-12-16T19:19:11 RaubtierEs hätte also hier $x = int($x); heißen sollen!
Echt, hättest Du die Zeile reingeschrieben?
2017-12-17T00:07:51 hlubenow2017-12-16T19:19:11 RaubtierAuch deine weitere Aussage, Perl-Variablen seien Skalare, ist offensichtlich falsch, da es ja Arrays und Hashes gibt.
Ach, Du weißt doch, wie ich das meinte.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#!/usr/bin/perl use warnings; use strict; my $num = 100; my @primzahlen = (); sub isPrim { my $tocheck = shift; my $isprim = 1; my $i; for $i (@primzahlen) { if ($tocheck % $i == 0) { $isprim = 0; last; } } return $isprim; } for my $i (2 .. $num) { if (isPrim($i)) { push(@primzahlen, $i); print "$i\n"; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
#!/usr/bin/perl use warnings; use strict; my $num = 11000; my @primzahlen = (); sub isPrim { my $tocheck = shift; my $maxlimit = $tocheck; my $isprim = 1; my $i; for $i (@primzahlen) { if ($i > $maxlimit) { last; } if ($tocheck % $i == 0) { $isprim = 0; print "$tocheck\t$i\t$maxlimit\n"; last; } else { $maxlimit = int($tocheck / $i); } } return $isprim; } for my $i (2 .. $num) { if (isPrim($i)) { push(@primzahlen, $i); print "$i\n"; } }
2017-12-17T01:59:35 hlubenowAngenommen, man prüft, ob 23 durch 2 teilbar ist. Ist es nicht.
Daraus folgt aber, daß der höchste Teiler, den man prüfen muß, 11 ist.
Denn 12 * 2 wäre ja schon drüber.
Wenn man dann auf 3 prüft, reduziert sich der höchstmögliche Teiler auf 7.
Und so weiter.
2017-12-17T22:36:51 RaubtierDen Link des Beitrags bekommst du über den "Anker mit dem +" im Beitragskopf.hmm... wie linke ich auf eine Nachricht in diesem Thread, sodass sie nicht "geschlossen" erscheint?