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

zliczanie liczb pierwszych w przedziale

VPS Starter Arubacloud
0 głosów
1,682 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 (81,480 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 308 wizyt
pytanie zadane 16 grudnia 2018 w C i C++ przez kamyk2 Początkujący (420 p.)
0 głosów
1 odpowiedź 286 wizyt
0 głosów
0 odpowiedzi 33 wizyt

92,454 zapytań

141,262 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...