matematykaszkolna.pl
C++ zabaleta: Napisać program, który dla każdej liczby naturalnej n zwraca : 1. komende " jest pierwsza" jeżeli taka jest. 2. silnie NWD jej i 1024, jeżeli jest parzysta i różna od 2 3. Sumę wszytskich liczb mniejszych od niej w pozostałych przypadkach. Gdzie jest błąd: #include<iostream> using namespace std; int wynik; int silnia(int n) { if(n==1){ wynik=1; } else{ wynik=n*silnia(n−1); } } int main() { int n; cout << "podaj liczbe naturalna" << endl; cin >> n; if(n<2) {cout<<"ani pierwsza, ani złożona";} for(int i=2;i*i<=n;i++) { if(n%i==0) { {if (n%2!=0 || n==2) {int sum=0; for(int s=0; s<n; s++) { sum += s; } cout<<"Suma wszystkich liczb mniejszych od "<<n<<" = "<<sum<<endl; exit(0); } if(n%2==0 && n!=2) { int a=n; int b=1024; while(a!=b) { if(a>b) a=a−b; else b=b−a; } cout << "Najwiekszy wspolny dzielnik liczb "<<n<<" i 1024 to: " << a << endl; cout <<a<< "! = "<<silnia(a)<<endl; exit (0); } } } else {cout<<"jest pierwsza"; } system("PAUSE"); return 0;} }
24 kwi 22:36
Alky: Całego kody nie czytałem, ale widziałem, że używasz exit(), a ta funkcja wymaga biblioteki <cstdlib> czy jak fani C wolą <stdlib.h>. Spróbuj
24 kwi 22:43
zabaleta: Niestety nie pomoglo ale problem rozwiązany.
24 kwi 22:53
jc: Po zakomenetowaniu exit() i system() działa, ale zwykle się myli. podaj liczbe naturalna 15 jest pierwsza
24 kwi 22:57