Widelczyk utworzono 15 maja 2012 utworzono 15 maja 2012 Witam. Zatem mam następujący problem. Nie wiem jak stworzyć dodatkową część do tego programu, która określałaby liczbę pierwszą(która zawiera resztę z dzielenia, np. 7:3 to reszta z dzielenia jest równa 1) oraz określa liczbę złożoną(która nie zawiera reszty z dzielenia, np. 6:3). Moim zadaniem jest dopisać do programu dalszą część która określałaby jaka przez użytkownika podana liczba w dzieleniu daje resztę bądź jej nie daje(liczba pierwsza, bądź złożoną). [CODE]program mhmm; uses CRT; var i: integer; n: integer; begin clrscr; writeln('Podaj dowolna liczbe'); write('Podaj liczbe: '); readln(n); i:=2; while(i*i<=n) do begin write(i, ' - '); writeln(n mod i); i:=i+1 end; readln(); end.[/CODE]
DarkLiquidus komentarz 15 maja 2012 komentarz 15 maja 2012 (edytowane) Jeśli n=7, to na wyjściu program wypisze: "2 - 1" Co ma to oznaczać?
leggo komentarz 15 maja 2012 komentarz 15 maja 2012 (edytowane) Żeby sprawdzić czy [b]liczba[/b] jest pierwsza dzielisz ją przez kolejne liczniki pętli powtarzającej się od [b]2[/b] do [b]liczba/2[/b]. Jeśli w którymkolwiek z powtórzeń reszta z dzielenia wynosi [b]0[/b], przerywasz dalsze wykonywanie się pętli i wiesz, że [b]liczba[/b] jest złożona. Jeśli w pętli reszta z dzielenia zawsze była inna niż [b]0[/b] to [b]liczba[/b] jest pierwsza.
Lechu1994 komentarz 17 maja 2012 komentarz 17 maja 2012 (edytowane) [CODE]var tab:array[1..10000] of boolean; i,x,j,z,f,cos:longint; begin for i:=2 to 10000 do tab[i]:=true; for i:=2 to 10000 do if tab[i]=true then begin x:=i*2; while x<=10000 do begin tab[x]:=false; x:=x+i; end; end; begin readln(z); for j:=1 to z do begin readln(f); if tab[f]=true then writeln('TAK') else writeln('NIE'); end; end; end.[/CODE] w tym zadaniu podajesz liczby i program sprawdza czy one sa liczbami pierwszymi
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.