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

zliczanie liczb pierwszych w przedziale

Cloud VPS
0 głosów
2,186 wizyt
pytanie zadane 7 listopada 2017 w C i C++ przez mn130496 Gaduła (3,530 p.)

Witam

Jestem studentem informatyki. Ostatnio na zajęciach otrzymałem zadanie , w którym mam wyświetlić ile liczb pierwszych jest w przedziale od 2 do n. Niestety dopiero się uczę programować i nie wiem jak sobie poradzić z tym zadaniem.Wiem, że mogę zrobić to za pomocą pętli for   i algorytmu sito Eratostenesa ale nie wiem jak to potem dodać do siebie  i jak to wszystko zapisać w programie , żeby mi wyświetliło liczbę liczb pierwszych w tym przedziale .Czy ktoś mógłby mi to wytłumaczyć najlepiej krok po krok jak sobie z tym poradzić.Dodam jeszcze że nie mogę używać tablic i program ma być w języku c.Pozdrawiam i proszę o szybką odpowiedź

komentarz 7 listopada 2017 przez niezalogowany

Kod?

nie mogę używać tablic

Kto ci zabrania? Przy tym algorytmie musisz jest wybitnie mocno zalecane użycie tablicy.

komentarz 7 listopada 2017 przez mn130496 Gaduła (3,530 p.)

chodzi mi o to że na zajęciach nie mieliśmy jeszcze tablic i wykładowca może się czepiać.A jak to zrobić inaczej?

komentarz 7 listopada 2017 przez niezalogowany

wykładowca może się czepiać

Albo ucieszy się, że jego student wykazał trochę chęci i zagłębił się w temat.

Nie wiem, jak to zrobić bez tablic, ale na pewno się da.

Jeżeli koniecznie chcesz to robić bez tablic, to użyj innego algorytmu, na angielskiej wiki jest pseudokod: https://en.wikipedia.org/wiki/Primality_test

A pierwsze n liczb z danego przedziału wygenerujesz pętlą.

komentarz 7 listopada 2017 przez mn130496 Gaduła (3,530 p.)

W sumie masz rację  to pomożesz mi zrobić to zadanie za pomocą tablic? a ja zaraz poczytam sobie o tablicach bo podobno temat ten nie jest trudny i przynajmniej zyskam w oczach wykładowcy na samym początku. 

komentarz 7 listopada 2017 przez niezalogowany
Pomożemy. Wrzuć kod, opisz, w czym jest problem i wtedy dostaniesz odpowiedź wyjaśniającą, co zrobiłeś źle i jak to zrobić, zeby było dobrze. (-:
komentarz 7 listopada 2017 przez mn130496 Gaduła (3,530 p.)
dobrze

2 odpowiedzi

0 głosów
odpowiedź 7 listopada 2017 przez chucksqll Stary wyjadacz (12,930 p.)
Jak dla mnie w tej treści nie ma nic do czego potrzebne były by tablice(no chyba, że chcesz użyć koniecznie akurat tego algorytmu).

Jednym ze sposobów na zrobienie tego jest:  pobranie tej liczby n, utworzyć zmienne pomocnicze do policzenia ile liczb jest w danym przedziale, następnie zrobić jakąś pętlę najlepiej for, która by sprawdzała te liczby od 2 do n i tu akurat jest więcej algorytmów, których możesz użyć, powiedziałbym więcej sam nawet możesz jakiś swój zrobić.
komentarz 7 listopada 2017 przez mn130496 Gaduła (3,530 p.)

Napisałem następują kod ale nie działa poprawnie(wyświetla wszystkie liczby od 2 do n)

Co jest źle?


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

int main(void)
{
    int i;
    int w;
    int n;
    printf("Podaj liczbę: \n");
    scanf("%d", &n);
    for(i=2;i<n; i++)
    {
        if(n%i==0)break;
        printf("%d",i);
    }
    return (0);
}

 

komentarz 8 listopada 2017 przez chucksqll Stary wyjadacz (12,930 p.)
Twoja pętla for jest do poprawki. Ten warunek jest bez sensu bo jeśli n jest liczbą pierwszą to dzieli się przez siebie jedynie i twój program wypisze liczby wszystkie jakie są w przedziale. Powinieneś bardziej skupić się na inkrementowalnym i, i sprawdzać czy ono jest liczbą pierwszą jeśli tak to wyświetlasz, a nie jak w Twoim przypadku wyświetlasz wszystkie liczby do napotkania dzielnika liczny n.
0 głosów
odpowiedź 7 listopada 2017 przez marcin99b Szeryf (84,410 p.)
Masz podać LICZBĘ LICZB PIERWSZYCH, a nie WYPISAĆ JE

Czyli algorytmem w pętli obliczasz dla każdej liczby mniejszej od podanej czy jest pierwsza
i jeśli jest, dodajesz do jakiejś zmiennej (int, początkowy 0), załóżmy countFirstNumbers 1

Gratuluje czytania ze zrozumieniem

Podobne pytania

+1 głos
2 odpowiedzi 536 wizyt
pytanie zadane 16 grudnia 2018 w C i C++ przez kamyk2 Początkujący (420 p.)
0 głosów
1 odpowiedź 456 wizyt
–2 głosów
0 odpowiedzi 332 wizyt

93,456 zapytań

142,451 odpowiedzi

322,721 komentarzy

62,837 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

Kursy INF.02 i INF.03
...