• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

sprawdzenie poprawności kodu programu do sprawdzania czy liczba jest liczbą pierwszą

Object Storage Arubacloud
0 głosów
647 wizyt
pytanie zadane 6 listopada 2017 w C i C++ przez mn130496 Gaduła (3,530 p.)

Witam 

jestem studentem pierwszego roku informatyki. Ostatnio na laboratoriach otrzymałem zadanie o treści:

Zad. 8 
Wprowadz liczbe calkowita N. 
a) sprawdz czy N jest liczba pierwsza,
b) sprawdz, ile liczb z zakresu 2..N jest liczbami pierwszymi.

Napisałem program, którego  zadaniem jest sprawdzenie czy liczba jest pierwsza , niestety program nie działa poprawnie (dla każdej liczby pokazuje, że jest pierwsza). Czy ktoś może sprawdzić  mój kod i powiedzieć mi gdzie jest błąd ?. Chciałbym się jeszcze dowiedzieć jak podsumować wszystkie liczby pierwsze z zakresu  od 2 do N i wyświetlić stosowny komunikat. Dodam jeszcze ,że program muszę napisać w języku C a nie C++.Proszę o szybkom odpowiedź.

Pozdrawiam

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int i;
    int n;
    printf("Podaj liczbe n:");
    scanf("%d", &n);
    for(i=2; i<=n; i++);
    {
        if(n%i==0)
        {
            printf(" Liczba %d nie jest liczba pierwsza: ",n);
        }
        else
        {
            printf(" Liczba %djest pierwsza: ",n);
        }
    }
    return (0);
}

 

komentarz 6 listopada 2017 przez m4sk1n Pasjonat (16,750 p.)
Przede wszystkim, jeżeli liczba nie jest pierwszą, powinieneś breaknąć, zakończyć działanie pętli. Po drugie, stwierdzenie o byciu liczbą pierwszą powinno znaleźć się poza pętlą, jeżeli ta pętla nie zwróci „niepierwszości”. Po trzecie – i<n.
komentarz 6 listopada 2017 przez mn130496 Gaduła (3,530 p.)

ok a mógłbyś zobaczyć co teraz jest źle bo wywala mi problem inie wiem o co chodzi?

komentarz 6 listopada 2017 przez m4sk1n Pasjonat (16,750 p.)
dajesz…
komentarz 6 listopada 2017 przez mn130496 Gaduła (3,530 p.)
sorry już udało mi się rozwiązać problem wszystko działa jak należy dziękuję ci za pomoc a wiesz może jak wyświetlić ile liczb pierwszych jest w przedziale od 2 do n?
komentarz 6 listopada 2017 przez Marchiew Dyskutant (7,690 p.)
Jeżeli to ma być w tym samym zadaniu to pokaż co masz teraz
komentarz 7 listopada 2017 przez mn130496 Gaduła (3,530 p.)

to muszę zrobić jako osobny projekt

1 odpowiedź

0 głosów
odpowiedź 6 listopada 2017 przez CzikaCarry Szeryf (75,340 p.)

Kod sam w sobie prawie poprawny (oprócz tego, że przy każdej iteracji pętli program będzie wypluwał do konsoli, czy liczba jest pierwsza czy nie mimo nie zakończenia operacji), ale lepiej go przebuduj:

  • Sprawdzanie, czy liczba jest liczbą pierwszą wstaw do funkcji zwracającej bool
  • Można poprawić performance algorytmu (np. Poprzez szukanie dzielników liczby tylko do i >= sqrt(n), lub poprzez sprawdzanie tylko nieparzystych dzielników (wyjątkiem jest 2))

Podobne pytania

0 głosów
3 odpowiedzi 410 wizyt
pytanie zadane 6 grudnia 2017 w C i C++ przez Newaz Użytkownik (880 p.)
+1 głos
1 odpowiedź 543 wizyt
+1 głos
1 odpowiedź 1,493 wizyt

92,568 zapytań

141,422 odpowiedzi

319,641 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...