Cześć jest ktoś w stanie wyjaśnić mi jak mam nanieść te poprawki co mam zmienić bo niezbyt rozumiem jak mam nanieść te poprawki do drugiej pętli w kodzie poniżej:
"
Rozwiązanie ma złożoność liniowę O(n) a należy to zrobić ze złożonością pierwiastkową O(sqrt(n)).
Druga pętla ma być od sqrt(n) do 1. Zmienna sterująca "i" pętli ma się zmieniać od sqrt(n) do 1. Jesli "i" jest dzielnikiem liczby n , to również "n/i" jest dzielnikiem liczby "n" (w tej drugiej pętli należy wyświetlić właśnie "n/i")."
#include <clocale>
#include <iostream>
#include <string>
void dzielniki(unsigned long long liczba)
{
std::cout << "Dzielniki liczby " << liczba << " to: ";
for (unsigned long long i = 1; i <= sqrt(liczba); i++)
{
if (liczba % i == 0)
{
std::cout << i << ", ";
}
}
for (unsigned long long i = sqrt(liczba) + 1; i <= liczba; i++)
{
if (liczba % i == 0)
{
std::cout << i << ", ";
}
}
}
int main()
{
std::setlocale(LC_ALL, "pl_pl");
unsigned long long liczba;
std::cout << "Podaj liczbę:";
std::cin >> liczba;
dzielniki(liczba);
}