Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 07. 11. 2010 12:34

myrek
Příspěvky: 223
Reputace:   
 

pascal test prvočíselnosti

Dobrý den
úkolem je zjistit zda je dané číslo prvočíslo. na vystupu ma byt vysledek 'ano' nebo 'ne'.

Code:

program prvociselnost;
var a,i:integer;
begin
read(a);
i:=3;
while i <= sqrt(a) do
      begin
       if (a div 2)*2=a then write('ano')
       else
             begin
             if (a div i)*i=a then write('ano')
             i:=i+2
             else write ('ne');
             end;
      end;
end.

je to dobre?

Offline

  • (téma jako vyřešené označil(a) myrek)

#2 07. 11. 2010 14:52

xxsawer
Příspěvky: 196
Reputace:   
 

Re: pascal test prvočíselnosti

↑ myrek:
Heh...to je jako vtip? Zkoušel sis ten program?
Mi přijde, že buď nevíš co to je prvočíslo nebo ste prostě dostali nějaký úkoly a ty sem postupně hrneš jeden za druhym a čekáš až ti to někdo naprogramuje...

Offline

 

#3 07. 11. 2010 17:11

Jan Jícha
Veterán
Místo: Plzeň/Mnichov
Příspěvky: 1801
Škola: ZČU - FST - KMM
Pozice: Safety Engineer
Reputace:   74 
Web
 

Re: pascal test prvočíselnosti

Přidávám poslední program. Příště si prostuduj teorii a ty programy co sem posíláš si vyzkoušej jestli fungují.

Code:

Program Prvocislo;

var n,i,k:          integer;
    zda:          boolean;


Begin
     zda := false;
     i := 2;
     writeln;
     writeln('Zadej cislo: ');read(n);
     k := ( abs(n) div 2) + 1;
     while (i<k) and (zda = false) do
           Begin
                if (n mod i) = 0 then zda := true;
                i := i+1
           End;
     Write('Cislo ',n,' ');
     if zda = true then Write('neni') else Write('je');
     Writeln(' prvocislo.')
End.

Offline

 

#4 07. 11. 2010 19:48

myrek
Příspěvky: 223
Reputace:   
 

Re: pascal test prvočíselnosti

↑ xxsawer:↑ Honza Matika:
jeste sem zkousel tohle a protoze me to ukazovalo spatne pro dvojku a trojku tak sem tam dal prvni dve if ale i kdyz me to jede tak mi to vyhodnotilo uspesnost 50 procent tak nevim

program prvociselnost;
var a,b,c:integer;d:boolean;
begin
read(a);
if a=2 then d:=true
else
if a=3 then d:=true
else
        begin
        b:=3;
        c:=trunc(sqrt(a))+1;
         if (a div 2)*2=a then d:=false
         else
                begin
                while b<= c do
                        begin
                        if (a div b)*b=a then d:=false
                        else
                        d:=true;
                        b:=b+2;
                        end;
                end;
        end;
if pravda=true then writeln('ano')
else writeln('ne');
end.

Offline

 

#5 07. 11. 2010 19:51 — Editoval myrek (07. 11. 2010 20:03)

myrek
Příspěvky: 223
Reputace:   
 

Re: pascal test prvočíselnosti

↑ xxsawer:
jo a u toho prvniho melo byt samozrejme prehozeno ano a ne
a taky tam byl problem s odmocninou to si zacatecnik proste neuvedomi
ale ted nabizim zmenenou verzi


a pokud ses dival na inverzni permutaci tak to nemam paru jak to naprogramovat
vim akorat ze inverzni matice se k matici hleda pomoci jednotkove matice a uprav ale jestli je to stejne i s permutaci tak to nevim
a pokud ano tak nevim jak bych takovy postup naprogramoval

dekuji

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson