Ĺadny brzuch
Mam taki problem:
Otóż mam do napisania program realizujący wyswietlanie liczb pierwszych z zakresu od 1 do n z menu
1.wpisz n
2.wyświetl liczby pierwsze od 1 do n
3.ilość liczb p. od 1 do n
4.koniec pracy
Menu potrafie zrobic mam taki kod programu:
#include<stdio.h> #include<conio.h> #include<iostream.h> int liczp[10000], illiczb, nilliczb, liczba, n; main() { cout<<"Wpisz do której liczby chcesz sprawdzić liczby pierwsze:"; cin>>n; liczp[1]=2; liczp[2]=3; liczp[3]=5; liczp[4]=7; illiczb=4; nilliczb=illiczb; for(liczba=n; liczba<=10000 ; liczba++){ if((liczba%liczp[1]!=0) && (liczba%liczp[2]!=0) && (liczba%liczp[3]!=0) && (liczba%liczp[4]!=0)){ nilliczb++; liczp[nilliczb]=liczba; } } for(int i=1; i<=nilliczb; i++){ printf("%i) %i\n",i,liczp[i]); } getch(); }
i tu jest problem jak zmienic ten kod aby pokazywał liczby pierwsze do liczby wpisanej n?
Obecnie jak wpisze np.56 to on i tak pokaże mi liczby do np.10000.
Użytkownik migajek edytował ten post 07 grudzień 2005, 14:48
for(liczba=n; liczba<=10000
; liczba++){
Wystarczy że zmienisz cytowaną linijkę na taką:
for(liczba=7; liczba<=n; liczba++)
Oczywiście warunkiem jest żeby liczba liczb pierwszych nie przekraczała 10000
Użytkownik imcpan edytował ten post 07 grudzień 2005, 13:38
Wystarczy że zmienisz cytowaną linijkę na taką:
for(liczba=7; liczba<=n; liczba++)
Zrobiłem tak ale to nic nie pomogło :( i jak np. wybiore np.23 to mi program wyrzuca to:
1)2
2)3
3)5
4)7
5)0 itd
i jak wybiore np. 5 to powinny mi wyskoczyć liczby 1,2,3 i 5 a mi jeszcze wyskakuje 7
Zrobiłem tak ale to nic nie pomogło :( i jak np. wybiore np.23 to mi program wyrzuca to:
1)2
2)3
3)5
4)7
5)0 itd
i jak wybiore np. 5 to powinny mi wyskoczyć liczby 1,2,3 i 5 a mi jeszcze wyskakuje 7
(...)i tu jest problem jak zmienic ten kod aby pokazywał liczby pierwsze do liczby wpisanej n?
Wyświetli Ci liczby od 2 (bo 1 nie jest zazwyczaj uznawane jako liczba pierwsza) do 'n', dodaj jeszcze menu i gotowe :)
int main(void) { int n = 0; cout << "Podaj 'n' :"; cin >> n; int iCzyPierwsza = 1; for (int i = 2; i < n; i++) { for (int j = 2; j < (i/2); j++) { if (i % j == 0) { iCzyPierwsza = 0; break; } } if (iCzyPierwsza) printf("%i ", i); iCzyPierwsza = 1; } cout << endl; system("pause"); return 0; }
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Otóż mam do napisania program realizujący wyswietlanie liczb pierwszych z zakresu od 1 do n z menu
1.wpisz n
2.wyświetl liczby pierwsze od 1 do n
3.ilość liczb p. od 1 do n
4.koniec pracy
Menu potrafie zrobic mam taki kod programu:
#include<stdio.h> #include<conio.h> #include<iostream.h> int liczp[10000], illiczb, nilliczb, liczba, n; main() { cout<<"Wpisz do której liczby chcesz sprawdzić liczby pierwsze:"; cin>>n; liczp[1]=2; liczp[2]=3; liczp[3]=5; liczp[4]=7; illiczb=4; nilliczb=illiczb; for(liczba=n; liczba<=10000 ; liczba++){ if((liczba%liczp[1]!=0) && (liczba%liczp[2]!=0) && (liczba%liczp[3]!=0) && (liczba%liczp[4]!=0)){ nilliczb++; liczp[nilliczb]=liczba; } } for(int i=1; i<=nilliczb; i++){ printf("%i) %i\n",i,liczp[i]); } getch(); }
i tu jest problem jak zmienic ten kod aby pokazywał liczby pierwsze do liczby wpisanej n?
Obecnie jak wpisze np.56 to on i tak pokaże mi liczby do np.10000.
Użytkownik migajek edytował ten post 07 grudzień 2005, 14:48
for(liczba=n; liczba<=10000
; liczba++){
Wystarczy że zmienisz cytowaną linijkę na taką:
for(liczba=7; liczba<=n; liczba++)
Oczywiście warunkiem jest żeby liczba liczb pierwszych nie przekraczała 10000
Użytkownik imcpan edytował ten post 07 grudzień 2005, 13:38
Wystarczy że zmienisz cytowaną linijkę na taką:
for(liczba=7; liczba<=n; liczba++)
Zrobiłem tak ale to nic nie pomogło :( i jak np. wybiore np.23 to mi program wyrzuca to:
1)2
2)3
3)5
4)7
5)0 itd
i jak wybiore np. 5 to powinny mi wyskoczyć liczby 1,2,3 i 5 a mi jeszcze wyskakuje 7
Zrobiłem tak ale to nic nie pomogło :( i jak np. wybiore np.23 to mi program wyrzuca to:
1)2
2)3
3)5
4)7
5)0 itd
i jak wybiore np. 5 to powinny mi wyskoczyć liczby 1,2,3 i 5 a mi jeszcze wyskakuje 7

(...)i tu jest problem jak zmienic ten kod aby pokazywał liczby pierwsze do liczby wpisanej n?
Wyświetli Ci liczby od 2 (bo 1 nie jest zazwyczaj uznawane jako liczba pierwsza) do 'n', dodaj jeszcze menu i gotowe :)
int main(void) { int n = 0; cout << "Podaj 'n' :"; cin >> n; int iCzyPierwsza = 1; for (int i = 2; i < n; i++) { for (int j = 2; j < (i/2); j++) { if (i % j == 0) { iCzyPierwsza = 0; break; } } if (iCzyPierwsza) printf("%i ", i); iCzyPierwsza = 1; } cout << endl; system("pause"); return 0; }