FAQ Autentificare
Cautare Profil
Membri Grupuri
Mesaje private
Inregistrare
Problema 05
Creaza un subiect nou   Raspunde la subiect
Pagina de start a forumului Atestat 2008 IaÅŸi » Pascal » Problema 05
Subiectul anterior :: Subiectul urmator  
Autor Mesaj
wasile
Elev


Data inscrierii: 16/Mar/2008
Mesaje: 2

 Mesaj Trimis: 16.03.2008 12:05    Titlul subiectului: Problema 05
Raspunde cu citat (quote)

Se considera numarul normal a, a>10000. Folosind descompunerea in factori primi a lui a, decideti daca asta poate fi exprimat ca produs de doua numere prime si dati un mesaj corespunzator.

De exemplu, pentru n=15, exista numerele 3 si 5 prime, care satisfac conditia din enunt,pentru n=4, exista numerele 2 si 2 prime, care satisfac conditia din enunt deci se va afisa mesajul Da, iar pentru n=45, se va afisa mesajul Nu.
Cod:

program ex5;
var a:longint;
    p,k,d,i:integer;
begin
     readln(a);
     if sqrt(a)= trunc(sqrt(a)) then writeln('EXISTA')
                                else  begin
                                    d:=2;
                                    k:=0;
                                    repeat
                                          p:=0;
                                          while a mod d=0 do begin
                                                             p:=p+1;
                                                             a:=a div d;
                                                             end;
                                    if p>0 then k:=k+p;
                                    d:=d+1;
                                    until a=1;
     if k=2 then writeln('EXISTA')
            else writeln('NU EXISTA');
end;
end.
 Sus »
Vezi profilul utilizatorului Trimite mesaj privat
Irragal
Administrator
Administrator
Irragal

Data inscrierii: 15/Mar/2008
Mesaje: 13

 Mesaj Trimis: 20.03.2008 17:22    Titlul subiectului:
Raspunde cu citat (quote)

Vãd cã ai fãcut douã chestii inutile. N-are rost sã verifici dacã este pãtrat absolut ºi în loc sã incrementezi p-ul ºi sã adaugi la k poþi sã-l mãreºti direct pe ãsta.
Uite cum am fãcut eu:

Cod:
program prob5;
var a:longint;
    k, d, i:integer;
begin
write('a='); readln(a);
d:=2; k:=0;

repeat
  while a mod d = 0 do
    begin
    k:=k+1;
    a:=a div d;
    end;
  d:=d+1;
until a = 1;

if k = 2 then writeln('Poate fi exprimat')
else writeln('Nu poate fi exprimat');
end.

Problema 05 Problema 05
 Sus »
Vezi profilul utilizatorului Trimite mesaj privat
oClasaAnonima
Megaelev
oClasaAnonima

Data inscrierii: 11/Apr/2008
Mesaje: 29

 Mesaj Trimis: 13.04.2008 13:46    Titlul subiectului:
Raspunde cu citat (quote)

Cod:
{5. se considera numarul normal a, a<10000. folosind descompunerea in factori
primi a lui a, decideti daca asta poate fi exprimat ca conceput de doua nr
prime si dati un mesaj dorespunzator.}
program new;
var a, k:integer;
ok:boolean;
function prim(n:integer):boolean;
var j,d:integer;
begin
d:=0;
for j:=2 to (n div 2) do if (n mod j=0) then d:=d+1;
if d=0 then prim:=true
       else prim:=false;
end;
begin
write('a: '); readln(a);
ok:=true;
k:=2;
while (k<=a div 2) and ok do if ((a mod k=0) and prim(k) and prim(a div k)) then begin
                                                                 ok:=false;
                                                                 write(k,' ',a div k);
                                                                 end
                                                            else k:=k+1;
if ok then write ('nu se poate')
      else write ('se poate');
end.
 Sus »
Vezi profilul utilizatorului Trimite mesaj privat
tabernaculum
Superelev


Data inscrierii: 03/Iul/2012
Mesaje: 6
Localitate: Uganda

 Mesaj Trimis: 16.07.2012 06:14    Titlul subiectului:
Raspunde cu citat (quote)

I had no idea how to approach this before-now I'm locked and laoedd.
 Sus »
Vezi profilul utilizatorului Trimite mesaj privat
tabernaculum
Superelev


Data inscrierii: 03/Iul/2012
Mesaje: 6
Localitate: Uganda

 Mesaj Trimis: 17.07.2012 19:02    Titlul subiectului:
Raspunde cu citat (quote)

I love how amazing and awesome this is.
 Sus »
Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:   
Pagina de start a forumului Atestat 2008 IaÅŸi » Pascal » Problema 05
Creaza un subiect nou   Raspunde la subiect Ora este GMT + 2 ore
Pagina 1 din 1

 
Mergi direct la:  
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum



Powered by phpBB © 2001, 2002 phpBB Group
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro