Jump to content

Recommended Posts

Posted

1.Se citește nu număr natural D. Să se afișeze toți divizorii naturali ai lui D. (toate numerele întregi >=1 și <=D) la care D se împarte exact.

2.Se citește nu număr natural D. Să se afișeze numărul divizorilor naturali ai lui D. (toate numerele întregi >=1 și <=D) la care D se împarte exact.

3.Se citește nu număr natural D. Să se afișeze (în funcție de numărul divizorilor naturali ai lui D) dacă D este prim sau nu.

4.Se citește nu număr natural N. Se citesc apoi N numere reale. Să se afișeze suma celor N numere reale.

5.Se citește nu număr natural N. Se citesc apoi N numere reale. Să se afișeze media aritmetică a celor N numere reale.

6.Se citește nu număr natural N. Se citesc apoi N numere reale. Să se afișeze valoarea maximă din cele N numere.

  • 2 weeks later...
Posted

!!! Fanul #1 al lui Courage, respect. !!!

 

 

Mai oameni buni, pana cand cautam divizori, pana cand se cauta numere? Pana la partea intreaga din nr/2 sau partea intreaga din  sqrt(nr). Daca facem sqrt(10) de exemplu, or sa caute doar pana la 3, dar si 5 il divide pe 10.

Tin minte ca profu' a zis ceva de radical, am si gasit in caiet ceva.

 

 

1.

#include<iostream>
using namespace std;
int main()
{ int d,i;
cout<<"D= ";cin>>d;
cout<<"Divizorii lui 'D' sunt: 1 ";
for(i=2;i<=d/2;i++)
if(d%i==0)cout<<i<<' ';
cout<<d;

return 0;}

2.

//
#include<iostream>
using namespace std;
int main()
{ int d,i,k=2; // k=2 pt ca nr respectiv se imparte SIGUR la 1 si el insusi.
cout<<"D= ";cin>>d;
cout<<"Numarul "<<d<<" are ";
for(i=2;i<=d/2;i++)
if(d%i==0)k++;
cout<<k<<" divizori.";

return 0;}

3.


#include<iostream>

using namespace std;
int main()
{ int d,i,k=1; //k=1 inseamna ca are divizori, plecam de la presupunerea asta
cout<<"D= ";cin>>d;
for(i=2;i<=d/2;i++)
if(d%i==0)k--; //daca a gasit vreun divizor, il face pe k=0.
if(k==0)cout<<"Numarul nu este prim.";
else cout<<"Numarul este prim.";

return 0;}

4.


#include<iostream>
using namespace std;
int main()
{ int n,s=0,x,i;
cout<<"n= ";cin>>n;
for(i=1;i<=n;i++)
{
    cin>>x;
    s+=x;
}
cout<<"Suma numerelor este: "<<s;
return 0;}

5.


#include<iostream>
using namespace std;
int main()
{ float n,s=0,x,i,j=0;
cout<<"n= ";cin>>n;
for(i=1;i<=n;i++)
{
    cin>>x;
    s+=x;
    j++;
}
cout<<"Media aritmetica a numerelor este: "<<s/j;
return 0;}

6.


#include<iostream>
using namespace std;
int main()
{ float n,max,i,x;
cout<<"n= ";cin>>n;
cin>>x;
max=x;
for(i=2;i<=n;i++)
{
    cin>>x;
    if(x>max)max=x;
}
cout<<"Cel mai mare numar introdus este: "<<max;
return 0;}

  • Moderators
Posted

Cand mergi pana la radical iei in calcul 2 elemente: divizor si cat, si verifici catul sa nu fie egal cu divizorul.

 

In cazul lui 10 mergi pana la 3. Cand ajungi la 2, 10/2 = 5.

Posted

Cand mergi pana la radical iei in calcul 2 elemente: divizor si cat, si verifici catul sa nu fie egal cu divizorul.

 

In cazul lui 10 mergi pana la 3. Cand ajungi la 2, 10/2 = 5.

 

Poate ca din cauza ca sunt prea obosit, dar nu am inteles.

Cand cautam divizori, am gasit in caiet ca e mai repede sa cauti de la i=2 pana la partea intreaga din radical din nr respectiv...uite.

for(i=2;i<=sqrt(n);i++) 
if(n%i==0)cout<<i<<" este divizor nn"; 

Pentru n=10, algoritmul nu l-ar gasi pe 5, dar asta e secventa notata in caiet pentru gasirea divizorilor.

Posted

algoritmul nu l-ar gasi pe 5, dar l-ar gasi pe 2. 

Acel algoritm doar iti zice daca exista divizori, nu ti-i gaseste pe toti. Daca pana la radical din numar nu ai gasit nici un divizor, esti 100% sigur ca nu mai are altul.

 

O demonstratie asa pe scurt.. i = radical x.

Deci i * i = x.

 

Daca X se imparte la un numar(S) mai mare decat i, rezultatul va fi mai mic decat i (S'). Dar implicit, X se va imparti si la cel deal 2lea numar (S') care e mai mic decat i. Deci, daca pana la i nu ai gasit nici un divizor, nu mai ai nici dupaia.

love is a verb
Love is a doing word

Posted

algoritmul nu l-ar gasi pe 5, dar l-ar gasi pe 2. 

Acel algoritm doar iti zice daca exista divizori, nu ti-i gaseste pe toti. Daca pana la radical din numar nu ai gasit nici un divizor, esti 100% sigur ca nu mai are altul.

 

O demonstratie asa pe scurt.. i = radical x.

Deci i * i = x.

 

Daca X se imparte la un numar(S) mai mare decat i, rezultatul va fi mai mic decat i (S'). Dar implicit, X se va imparti si la cel deal 2lea numar (S') care e mai mic decat i. Deci, daca pana la i nu ai gasit nici un divizor, nu mai ai nici dupaia.

 

Aaa da, algoritmul ala era sa vada daca e prim sau nu.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.