Program wyświetla wszystkie liczby całkowite z przedziału podzielne przez k. Wartości a, b i k podaje użytkownik. Przykład 6 Program wypisuje liczby naturalne parzyste od liczby podanej przez użytkownika do 0. ZADANIA. Zadanie 1 Napisz program wyświetlający liczby od 5 do 100 z krokiem równym 5. 5 10 15 20 … 100. Zadanie 2 Liczby pierwsze | Liczby złożone | Najszybsza metoda znajdowania liczb pierwszych od 1 do 100. Jak w Javascript mógłbym znaleźć liczby pierwsze z przedziału od 0 do 100? Myślałem o tym i nie wiem, jak je znaleźć. myślałem o zrobieniu x% x, ale znalazłem z tym oczywisty problem. to, co mam do tej pory: ale niestety jest to najgorszy kod wszechczasów. var prime = function (){ var num; for (num = 0; num znajdź lepszą (i wygraj nagrodę za odkrycie nowej pierwszej :)) 2 wydaje się działać nawet, gdy n = 10 000 000, nie jestem pewien, co to jest „małe” haha 1 @devonJS, gdy n = 10 000 000, zatrzymałoby się przy pierwszej iteracji, ponieważ jest podzielne przez 2, bardzo szybko byłoby dowiedzieć się, że 10 000 000 nie jest liczbą pierwszą. Mimo to może znaleźć 2 147 483 647 dość szybko i 67 280 421 310 721 bez większych problemów, chociaż wydaje się, że nie radzi sobie w Chrome z 170 141 183460 469 231731 687 303715884 105 727 po prostu dlatego, że% 2 na tej liczbie będzie równe 0. Oto pokaz na żywo tego skryptu: Najpierw utwórz funkcję, która sprawdzi, czy pojedyncza liczba jest liczbą pierwszą, czy nie. Jeśli chcesz rozszerzyć obiekt Number, możesz, ale zdecydowałem, że kod będzie tak prosty, jak to tylko możliwe. function isPrime(num) { if(num =j && i%j == 0) { ++counter; } } if(counter == 1) { primeNumbers = primeNumbers + i + ' '; } } ... Ta odpowiedź zadziałała dla mnie i jest o wiele prostsza niż inne odpowiedzi, które widziałem. Nie jestem pewien, jak możemy się różnić j i ja, ponieważ oboje obracają się w tym samym czasie. Czy mógłbyś to wyjaśnić, dziękuję? Odpowiedź Luchiana daje link do standardowej techniki znajdowania liczb pierwszych. Mniej wydajnym, ale prostszym podejściem jest przekształcenie istniejącego kodu w zagnieżdżoną pętlę. Zauważ, że dzielisz przez 2, 3, 4, 5, 6 i tak dalej ... i zamień to w pętlę. Biorąc pod uwagę, że jest to praca domowa i biorąc pod uwagę, że celem zadania domowego jest pomoc w nauce podstawowego programowania, rozwiązanie, które jest proste, poprawne, ale nieco nieefektywne, powinno wystarczyć. Używając rekurencji w połączeniu z regułą pierwiastka kwadratowego stąd, sprawdza, czy liczba jest liczbą pierwszą, czy nie: function isPrime(num){ // An integer is prime if it is not divisible by any prime less than or equal to its square root var squareRoot = parseInt( var primeCountUp = function(divisor){ if(divisor > squareRoot) { // got to a point where the divisor is greater than // the square root, therefore it is prime return true; } else if(num % divisor === 0) { // found a result that divides evenly, NOT prime return false; } else { // keep counting return primeCountUp(++divisor); } }; // start @ 2 because everything is divisible by 1 return primeCountUp(2); } Oto najszybszy sposób obliczania liczb pierwszych w JavaScript na podstawie poprzedniej wartości pierwszej. function nextPrime(value) { if (value > 2) { var i, q; do { i = 3; value += 2; q = while (i 2) { var i, q; do { i = 3; value += 2; q = while (i var n=prompt('Enter User Value') var x=1; if(n==0 || n==1) x=0; for(i=2;i Sito Eratostenesa. trochę wygląda, ale jest proste i działa! function count_prime(arg) { arg = typeof arg !== 'undefined' ? arg : 20; //default value var list = [2] var list2 = [0,1] var real_prime = [] counter = 2 while (counter Array( => n%m); To da 9,25 i więcej liczb niebędących liczbami pierwszymi jako liczby pierwsze, sprawdź Tak, zapomniałem zwiększyć limit wyszukiwania ( (n) +1). Dzięki za test Lista utworzona przy użyciu nowych funkcji ES6, zwłaszcza z generatorem. Przejdź do zrobionego w języku katalońskim na zajęcia z moimi uczniami. Mam nadzieję, że uznasz to za przydatne. function* Primer(max) { const infinite = !max && max !== 0; const re = /^.?$|^(..+?)\1+$/; let current = 1; while (infinite || max-- ) { if(! == true) yield current; current++ }; }; let [...list] = Primer(100); Oto bardzo prosty sposób obliczania liczb pierwszych między podanym zakresem (od 1 do ograniczenia). Proste rozwiązanie: public static void getAllPrimeNumbers(int limit) { prime number from 1 to ' + limit); for(int number=2; numberi+2); for (var i = 0; i x); // return non 0 values } = `${getPrimes(100).join(', ')}`; // for fun, this fantasist regexp way (very inefficient): // (_,i)=>i).filter(n => n>1&&!/^(oo+)\1+$/.test('o'.repeat(n)) Niedawno wymyśliłem jednoliniowe rozwiązanie, które zapewnia dokładnie to dla wyzwania JS na Scrimba (poniżej). ES6 + const getPrimes=num=>Array(num-1).fill().map((e,i)=>2+i).filter((e,i,a)=> function getPrimes(num){return ','.repeat(num).slice(0,-1).split(',').map(function(e,i){return i+1}).filter(function(e){return e>1}).filter(function(x){return ','.repeat(x).slice(0,-1).split(',').map(function(f,j){return j}).filter(function(e){return e>1}).every(function(e){return x%e!==0})})}; Oto wyjaśniona logika: Najpierw funkcja buduje tablicę wszystkich liczb prowadzących do żądanej liczby (w tym przypadku 100) za pośrednictwem .repeat() funkcji, używając żądanej liczby (100) jako argumentu repeatera, a następnie mapując tablicę na indeksy + 1, aby uzyskać zakres liczb od 0 do tej liczby (0-100). Trochę rozszczepiania strun i łączenia magii, która tu się dzieje. Z przyjemnością wyjaśnię ten krok dalej, jeśli chcesz. Wykluczamy 0 i 1 z tablicy, ponieważ nie powinny być testowane pod kątem liczby pierwszej, aby nie dawały fałszywie dodatniego wyniku. Żadne nie są pierwsze. Robimy to za pomocą .filter() tylko dla liczb> 1 (≥ 2). Teraz filtrujemy naszą nową tablicę wszystkich liczb całkowitych od 2 do żądanej liczby (100) tylko pod kątem liczb pierwszych. Aby odfiltrować tylko liczby pierwsze, używamy tej samej magii od naszego pierwszego kroku. Używamy .filter() i .repeat() jeszcze raz, aby utworzyć nową tablicę od 2 do każdy wartość z naszej nowej tablicy liczb. Dla nowej tablicy każdej wartości sprawdzamy, czy którakolwiek z liczb ≥ 2 i .every() metoda sparowana z operatorem modulo % aby sprawdzić, czy ta liczba ma resztę po podzieleniu przez którąkolwiek z tych wartości między 2 a sobą. Jeśli każda wartość ma resztę (x%e!==0), warunek jest spełniony dla wszystkich wartości od 2 do tej liczby (ale nie wliczając tej liczby, tj .: [2,99]) i możemy powiedzieć, że liczba jest pierwsza. Funkcje filtrujące zwracają wszystkie liczby pierwsze do najwyższego wyniku, zwracając w ten sposób listę wartości pierwszych między 2 a wartością przekazaną. Na przykład, używając jednej z tych funkcji, które dodałem powyżej, zwraca: getPrimes(100); // => [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97] 1 Cholera! Dokładnie takiego podejścia szukałem. Dzięki za udostępnienie. 1 @ultrageek pewnie! Ponadto zoptymalizowałem moje rozwiązanie ES6 +, aby korzystać z fill() funkcja, a nie moje nieco zepsute rozwiązanie z powtarzającymi się przecinkami. Zaktualizowano! Najpierw zmień swój kod wewnętrzny na inną pętlę (for i while), dzięki czemu można powtórzyć ten sam kod dla różnych wartości. Bardziej szczegółowo dla twojego problemu, jeśli chcesz wiedzieć, czy dany n jest liczbą pierwszą, musisz ją podzielić dla wszystkich wartości od 2 do sqrt (n). Jeśli którykolwiek z modułów ma wartość 0, nie jest liczbą pierwszą. Jeśli chcesz znaleźć wszystkie liczby pierwsze, możesz to przyspieszyć i sprawdzić n tylko przez podzielenie przez poprzednio znalezione liczby pierwsze. Innym sposobem na przyspieszenie tego procesu jest fakt, że oprócz 2 i 3 wszystkie liczby pierwsze są 6*k plus lub mniej 1. W rzeczywistości jest między 2 a sqrt (n). Tak masz rację. Jeśli liczba większa niż sqrt (n) jest dzielnikiem noznacza to, że iloraz jest mniejszy niż sqrt (n), więc zostałby już znaleziony. Korygowanie. Byłoby dobrze, gdybyś użył któregokolwiek z algorytmów gazillionów, które zostaną ci przedstawione w tym wątku, aby nauczyć się zapamiętywać niektóre z nich. Zobacz pytanie do wywiadu: Jaki jest najszybszy sposób na rekurencyjne generowanie liczb pierwszych? Użyj następującej funkcji, aby znaleźć liczby pierwsze: function primeNumbers() { var p var n = var d var x var prime var displayAll = 2 + ' ' for (p = 3; p divisor) { if ( 2) > n) { return true; } if (n % divisor == 0 || > n) { return false; } else { divisor++; } } return true; } function getPrimeNumbers(range) { for (var i = 3; i <= range; i+=2) { if (isPrime(i)) { } } fillContent(primeNumbers); } getPrimeNumbers(11); })(); }; 1 2 Dalej Liczby parzyste i nie parzyste 2012-11-28 17:48; funkcja która zwraca liczby parzyste 2022-06-17 13:55; parzyste liczby 2002-05-15 15:17; Program wyswietlajace liczby parzyste i nie parzyste 2011-11-23 16:08; Funkcja usuwająca substring 2009-11-18 15:30; Liczby parzyste (while) 2012-12-21 22:58; Liczby parzyste i nieparzyste 2013-03-12 15:17 marexbdm Liczby parzyste: 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98, nieparzyste: 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97, trójkąt nie może istnieć!Ale gdy dodamy wyszło by 60cm. 1 votes Thanks 1 Liczby parzyste, to takie liczby, które można podzielić przez 2. Na przykład: 2,4,6,8 itd. W przeciwieństwie do liczb parzystych, liczby nieparzyste nie są podzielne przez dwa. Należą do nich na przykład liczby: 3, 5, 7, 9 itd. Odliczając od zera w górę, liczby parzyste występują na przemian z nieparzystymi i nigdy ze sobą nie 2,4,6,8,10, //sumacyfr = 2112,14,16,18,20, //suma cyfr = 21 + 5 = 21 + 1 * 522,24,26,28,30, //suma cyfr = 21 + 5 + 5 = 21 + 2*5...92,94,96,98,100 //suma cyfr = 21 + 5 * 9 - 9suma cyfr = 21 * 10 + 5 * (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9) - 9 == 210 + 5 * 45 - 9 = 210 + 225 - 9 = 435 - 9 = 426drugi sposob:ta liczba to:2468 1012141618 2022242628 30 ... 9092949698 100przy czym wstawilem przerwy miedzy grupami 2-8, 10-18, 20-28 itdzatem wystepuja tam cyfry:2,4,6,8 - wystepuja w kazdej z dziesieciu 10 grup, jako cyfry jednostek1, 2, 3, 4, 5, 6, 7, 8, 9 - po 5 w kazgej grupie jako cyfry dziesiateki ostatecznie 1+0+0 z setki na koncu, czyli:10 * (2+4+6+8) + 5 * (1+2+3+4+5+6+7+8+9) + 1 = 10 * 20 + 5 * 45 + 1 = 200 + 225 + 1 = 426
0%. liczby parzyste i nieparzyste. Share Share by Adamczakaneta. Show More. Edit Content. Embed Like. More. Leaderboard
Opis Pierwsze gry do nauki liczenia w zakresie 0-10 Puzzle dwustronne w kształcie koła pomagające w rozpoznawaniu liczb od 0 do 10. Na każdym kole są przedstawione 4 reprezentacje liczby: liczba pisana, liczba oczek na kostce, obrazek z daną cyfrą za pomocą palców u ręki, zbiór elementów. Zadaniem dziecka jest ułożenie koła z właściwymi elementami. Puzzle są dwustronne: dziecko samodzielnie odwraca koło, aby sprawdzić poprawność wykonanego zadania. Wsparcie dla osób niepełnosprawnych: uczy rozumienia i nazywania stosunków liczbowych. Rozwijanie umiejętności : Budowanie i rozkładanie liczb w zakresie 0-10 Rozpoznawanie i skojarzenie różnych reprezentacji liczby Zapamiętywanie liczb Zawartość: 11 kół – 44 elementy: każde koło składa się z 4 elementów Liczby nieparzyste w kolorze czerwonym; liczby parzyste w kolorze niebieskim Ø koła: 13 cm Opakowanie: kolorowe kartonowe Wiek dziecka: 3 lata + Normy: Zgodne z EN71
Mam liczbę (jako parametr wejściowy do funkcji) np 100. Teraz zadaniem funkcji jest wygenerowanie jednej listy licz które będą o X większe o 100 oraz od Y mniejsze od 100. X i Y to też są moje parametry które podaję na wejściu do funkcji. Załóżmy że moje X = 4, Y = 5. Wynikiem działania funkcji ma być posortowana lista z
Ta lekcja dostępna jest także w formie filmu. Pętle w programowaniu są wykorzystywane niemal w każdym programie. Jest to jedna z podstawowych konstrukcji wykorzystywana we wszystkich językach programowania. Pozwalają one wykonywać określoną czynność wielokrotnie na przykład, gdy musimy wyświetlić 10 razy prawie to samo. Poznamy tutaj pętle, które pozwalają powtarzać jakąś czynność niewiadomą ilość razy oraz takie, które z góry zakładają pewną liczbę wykonań. Pętla while Pętlę while najczęściej wykorzystuje się w miejscach, gdzie zakładana ilość powtórzeń jest bliżej nieokreślona, ale znamy warunek jaki musi być spełniony. Jej schematyczną postać przedstawiono poniżej: while(warunek){ instrukcje do wykonania } Gdy warunek jest spełniony instrukcja we wnętrzu pętli jest wykonywana. Jeżeli natomiast warunek jest fałszywy może się ona nie wykonać, ani razu. Zazwyczaj stosuje się jakąś zmienną liczbową, a następnie dzięki inkrementacji, lub dekrementacji zmienia do momentu, aż warunek stanie się fałszywy. Podobnie jak przy instrukcji warunkowej if można pominąć nawiasy klamrowe w wypadku, gdy w ciele pętli znajduje się tylko jedna metoda, lub dowolna instrukcja. Dobrze jest sobie zapamiętać ją jako: "dopóki warunek jest spełniony to wykonuj instrukcje". Zobaczmy jej działanie na praktycznym przykładzie: public class Odczyt{ public static void main(String[] args){ int licznik = 0; while(licznik<10){ jest petla"); licznik++; } pętli"); } } Zadeklarowaliśmy zmienną licznik i przypisaliśmy jej 0. Sprawdzamy warunek, czy jest ona mniejsza od 10 - faktycznie jest więc wykonujemy instrukcje w jej wnętrzu. Wyświetlamy tekst "To jest pętla" i zwiększamy licznik o 1. Następnie znowu sprawdzany jest warunek, czy 1<10, ponownie tak, więc powtarzamy poprzednie czynności. Gdy licznik osiąga wartość 10 warunek jest fałszywy, ponieważ 10 nie jest mniejsze od 10. Pętla jest przerywana i wyświetlany jest tekst "Koniec pętli". Pętla do while Różni się ona od pętli while przede wszystkim tym, że to co znajduje się w jej wnętrzu wykona się przynajmniej raz, ponieważ warunek jest sprawdzany dopiero w drugiej kolejności. Schematyczna budowa przedstawia się o tak: do{ instrukcje do wykonania } while(warunek); Zwróć uwagę na kończący wyrażenie średnik, który przy pętli while nie występuje. instrukcje do wykonania są egzekwowane przynajmniej raz, a dopiero później sprawdzamy warunek, gdy jest on prawdziwy, instrukcje są powtarzane. Tą pętlę można zapamiętać następująco "wykonuj instrukcje dopóki warunek jest prawdziwy" - widzimy tutaj tylko zamianę słów, ale mają one kluczowe znaczenie. Wcześniejszy przykład z użyciem pętli do...while wyglądałby tak: public class Odczyt{ public static void main(String[] args){ int licznik = 0; do{ jest petla"); licznik++; } while(licznik<10); pętli"); } } Przebieg działania jest prawie taki sam, tylko, że gdyby przykładowo licznik był zainicjowany liczbą 20, to mimo wszystko wyświetliłby się raz napis "To jest pętla". W naszym przypadku napis wyświetla się 10 razy. Pętla for Pętlę for od dwóch poprzednich odróżnia przede wszystkim rodzaj zastosowań. W jej przypadku zazwyczaj wiemy dokładnie ile razy ma się jakaś czynność powtórzyć. Jej schemat to: for(wyrażenie początkowe ; warunek ; modyfikator_licznika){ instrukcje do wykonania } Wyrażenie początkowe służy do zainicjowania jakiegoś licznika, którym zazwyczaj jest w tym samym miejscu zadeklarowana zmienna typu całkowitego - najczęściej oznacza się je przy pomocy liter od "i" wzwyż, jest to przydatne przy zagnieżdżonych pętlach, gdzie przy długich nazwach ciężko by się było połapać. Warunek sprawdza, czy ma się wykonać instrukcja z wnętrza pętli, natomiast modyfikator zmienia licznik - zazwyczaj jest to instrukcja inkrementacji. Wcześniejszy przykład z wykorzystaniem pętli for wyglądałby więc tak: public class Odczyt{ public static void main(String[] args){ for(int i=0; i<10; i++){ jest pętla"); } pętli"); } } Jak widać nie musieliśmy tutaj deklarować zmiennej globalnej, a zapis jest bardziej zwięzły. Działanie jest dokładnie takie samo jak w przypadku pętli while. Pętla foreach Istnieje również pętla foreach która pozwala na iterację po wszystkich elementach tablicy lub kolekcji. Opis tej pętli znajdziesz pod w artylkule o pętli foreach.
1) Napisz program przy użyciu pętli for, który wyświetli liczby od 1 do 10 a obok niej jej kwadrat.2) Napisz program który prosi o wpisanie wartości podstawy i wpisuje ją do zmiennej a, prosi o wpisanie wartości wykładnika i wpisuje ją do zmiennej b po czym potęguje a do b i wyświetla wynik. Po wyświetleniu program powinien zapytać czy zakończyć pracę. Po wpisaniu "t" program
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Napisać program, który pobiera od użytkownika ciąg liczb całkowitych. Pobieranie danych kończone jest podaniem wartości 0 (nie wliczana do danych). W następnej kolejności program powinien wyświetlić sumę największej oraz najmniejszej z podanych liczb, średnią arytmetyczną wprowadzonych liczb, a także ile z wprowadzonych liczb było jest większych od średniej. #include #include #include #include #include using namespace std; int main() { int tab[1000], n=1; int i=0, suma=0, najwieksza , najmniejsza,srednia, zlicz = 0; while ( n!=0) { cout>n; tab[i]= n; i++; zlicz++; } najmniejsza = tab[0]; najwieksza = tab[0]; for (int i = 0; inajwieksza) najwieksza=tab[i]; else if (tab[i]>n; suma = suma + n; zlicz= zlicz+1; } while (suma 2) i wypisuje na standardowym wyjściu największą liczbę k taką, że k dzieli n i k >n; tab = new int[n]; if (n> n; tab = new int[n]; if (n > n; if (n==0) cout najwieksza) { najwieksza = tab[i]; cout #include #include #include #include using namespace std; int main() { int tab[5][5]; srand (time(NULL)); for (int i=0;i<5;i++) {cout< . 200 63 125 479 7 79 467 143

liczby parzyste od 0 do 100 javascript