Napisz program w C++ obliczający iloczyn n dowolnych liczb parzystych podzielnych przez 3

Napisz program w C++ obliczający iloczyn n dowolnych liczb parzystych podzielnych przez 3
Odpowiedź

Po pierwsze, aby liczba była parzysta musi w rozkładzie na czynniki posiadać 2, a żeby przez 3 musi posiadać w rozkładzie 3, wynika z tego że liczby spełniające ten warunek są wielokrotnościami 3*2=6,dlatego losujemy dowolną liczbę i mnożymy ją razy 6 Należy tu także zwrócić uwagę iż, iloczyn jest typu unsigned long long, zatem trzeba uważać by zmienna ta nie wyszła poza zakres, dlatego mamy rand()%1000000+1, co gwarantuje nam iż liczba ta będzie maksymalnie równa 100000*6, zmienna unsigned long long ma 8 bajtów czyli może przechować wartości z przedziału <0 ;2^(8*8)= 18446744073709551616>. Podzielmy teraz 18446744073709551616 przez 6000000 = 512409,55760304310044444444444433, zaokrąglamy w dół 512409 i to jest maksymalna wartość n #include #include using namespace std; int main() { srand(time(0));//włączamy generator liczb losowych; int n; cin>>n; if(n>512409) { cout<<"Za duze n"; getch(); return 1; } unsigned long long iloczyn=1; int pomoc; cout<<"iloczyn liczb "; for(int i=0;i

no to może problem załatwimy tak. dopóki nie będziemy mieć tych n liczb to polecimy pętelką i będziemy mnożyć wielokrotności 6stki. (bo 6 dzieli się przez 3 i jest parzyste) #include using namespace std; int main(){ int n,suma,x; cin >> n; n--; x=suma=6; while(n--){ x+=6; suma*=x; } cout << suma << endl; return 0; }

Dodaj swoją odpowiedź