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

Program wybierający liczby mające 18 dzielników

VPS Starter Arubacloud
0 głosów
1,620 wizyt
pytanie zadane 28 lutego 2016 w C i C++ przez Madrox24 Początkujący (350 p.)

Witajcie. Właśnie próbuję robić zadania do matury z informatyki. Moje zadanie brzmi tak : "Wśród liczb występujących w pliku wejściowym znajdź te, które mają dokładnie 18 dzielników naturalnych (wliczając w nie 1 i samą liczbę)."

Wykombinowałem coś takiego :

#include <iostream>
#include <fstream>
using namespace std;
int main()
{
 ifstream plik;
 plik.open("liczby.txt");
 long liczba,ilosc=0,dzielnik;
 while (!plik.eof())
 {
 	plik>>liczba;
	dzielnik=0;
	ilosc=0;
	do
	{
	   dzielnik++;
 	   if(liczba%dzielnik==0) ilosc++;
    } while (dzielnik==liczba);
	if(ilosc==18) cout<<liczba<<endl;
 }

}

Szkoda tylko, że nie działa :P. Byłbym wdzięczny o wskazówkę :).

1 odpowiedź

0 głosów
odpowiedź 28 lutego 2016 przez Ehlert Ekspert (214,060 p.)

Jak obliczyć liczbę dzielników. Iterowanie od 1 do danej liczby jest bez sensu.

Mój algorytm. Najpierw dla liczb,  których pierwiastek€N:

Bierzemy 100. x, czyli pierwiastek jest równy 10.
Sprawdź dzielniki od 1 do 10 więc mamy: 1,2,4,5,10
Sprawdź ile jest dzielników od tych, które powstały.
Mamy: 100, 50, 25, 20 (10 już mamy).
Morał: ilość dzielników liczb, których pierwiastek jest liczbą całkowitą to:

(ilość dzielników z zakresu <1;pierwisatek_liczby>)*2-1;

A jak z liczbami których pierwiastek nie jest całkowity?

Tak samo z małą różnicą: pierwiastek zaokrąglamy w górę. Wtedy:
(ilość dzielników z zakresu <1;pierwisatek_liczby>)*2;

Implementacja algorytmu i jego optymalizacja pod względem szybkości i pamięci dla Ciebie smiley

Podobne pytania

0 głosów
1 odpowiedź 7,340 wizyt
0 głosów
2 odpowiedzi 430 wizyt

93,004 zapytań

141,969 odpowiedzi

321,248 komentarzy

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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...