Perl :: Aufgabe #65
4 Lösungen

Finde die erste Zahl die durch alle Zahlen bis 30teilbar ist
Fortgeschrittener - Perl
von 96fabi
- 25.09.2014 um 09:01 Uhr
Gesucht wird die erste Zahl, die durch alle Zahlen bis 30 geteilt werden kann(1-30).
Zum Einstieg kann man erstmal die erste Zahl suchen , die durch alle Werte bis 20 geteilt werden kann.
Dieses ist 232792560
Zum Einstieg kann man erstmal die erste Zahl suchen , die durch alle Werte bis 20 geteilt werden kann.
Dieses ist 232792560
Lösungen:

#!/usr/bin/perl use strict; use warnings; my $x = 0; my $a = 30; my $t = 0; sub berechnung() { my $y = 1; my $c = 0; my @arr = (29,27,25,23,21,19,17,28,26,24,22,20,18,16); while ($y == 1) { if ($a %$arr[$c]) { $y = 0; } else { if ($c == 14 ) { print "ihr Ergebnis ist $a"; $y = 0; $x = 1; } $c = $c + 1; } } return $x; } while ($x == 0) { berechnung(); $a = $a + 30; } <STDIN>

# Konnte es leider nicht testen, da meine Konsole abstürtzt wenn ich das starte, aber es müsste funktionieren. LG #! /usr/bin/perl use strict; use warnings; my $schalter = 0; for(my $i = 1; $schalter != 1; $i++){ $schalter = 1; for(my $j = 1; $j <= 30; $j++){ if($i % $j != 0){ $schalter = 0; } } if($schalter == 1){ print "\n Erste Zahl die durch 1 - 30 teilbahr ist, ist: ", $i; } }

#!/usr/bin/perl use strict; use warnings; my $max = 30; my $geteielt = 1; my $z = 0; my $zahl = 1; my $check = 0; for($geteielt..$max) { $check = 0; while(!$check) { $check = 1; $z = 1; for($z..$geteielt) { if($zahl % $z != 0) { $check = 0; } $z++; } if($check) { print "$zahl ist durch die zahlen 1 - $geteielt teilbar\n"; } $zahl ++; } $geteielt++; } my $end = <STDIN>;

func zahl(wert: Int) -> String { var counter = wert // TODO var fertig = false var counterX = 2 // (3) 2,3,4 repeat { counterX = 2 for zahlX in 2...wert { // TODO if (counter % zahlX == 0) { counterX += 1 } } if (counterX == (wert + 1) ) { fertig = true } counter += 1 } while (!fertig) // 232_792_560 counter -= 1 return String(counter) } print(zahl(wert: 18)) // 12252240