Jak sprawdzić czy pierwiastek ma reszte

Odpowiedz Nowy wątek
zeko
2011-01-10 08:04
zeko
0

Rozwiązywałem szerszy problem. I teraz bardzo by mi się przydało coś co powiedziałoby mi czy pierwiastek z liczby jest liczba całkowitą. Problem w tym że całkiem możliwe że ten warunek będę musiał sprawdzać z 8mln razy ;x może mi ktoś powiedzieć jak to zrobić?

Pozostało 580 znaków

2011-01-10 08:36

Rejestracja: 9 lat temu

Ostatnio: 7 lat temu

0

pomnóż pierwiastek przez siebie i sprawdź czy jest równy z oryginałem..

        double n;
    cin>>n;
    if(sqrt(n)*sqrt(n)==n)
        cout<<"YES";
    else
        cout<<"NO";

i see dead pixels..
edytowany 1x, ostatnio: Carlos Spicy-Weener, 2011-01-10 08:37

Pozostało 580 znaków

zeko
2011-01-10 08:43
zeko
0
Carlos Spicy-Weener napisał(a)

pomnóż pierwiastek przez siebie i sprawdź czy jest równy z oryginałem..

double n;
cin>>n;
if(sqrt(n)*sqrt(n)==n)
cout<<"YES";
else
cout<<"NO";

y... ale jak wyciągnie pierwiastek z 0,25 czyli 0,5 i pomnoży go to znowu wyjdzie warunek spełniony, na to co podałeś sam wpadłem i od razu wykluczyłem. Nie sprawdziłoby to się w moim programie, strasznie przekłamany wynik by wyszedł nawet milion x większy niż powinien >.<

Pozostało 580 znaków

2011-01-10 08:51

Rejestracja: 9 lat temu

Ostatnio: 7 lat temu

0

TO sie sprawdza, gdy testujesz na liczbach całkowitych.. Niestety nie wiemy do czego jest Ci to dokładnie potrzebne..
a może zapisz to do stringa i zobacz czy jest tam kropka??


i see dead pixels..
edytowany 1x, ostatnio: Carlos Spicy-Weener, 2011-01-10 08:56

Pozostało 580 znaków

zeko
2011-01-10 09:10
zeko
0

Przecież to tak jakbym miał znaleźć kwadraty a obliczał ilość prostokątów. Ogółem jest tak. Mam napisać program który sprawdzi ile dla danej liczby (liczb będzie kilkadziesiąt i większość w okolicach miliarda) ile ma takich a i b że a2+b2=tej liczbie. Jak pewnie zauważyłeś brutalforce by to po prostu zabił. Moja metoda też nie jest szczytem geniuszu. zapuszczam pętle od zera do pierwiastka z liczby i sprawdzam dla każdego czy pierwiastek z liczba - kwadrat pomocniczej pętli jest liczbą całkowitą jeśli tak ilość takich liczb ++.Tylko nie wiem jak sprawdzić. i jeśli będę zbyt rozlegle kombinował to będzie za wolne. brutal forcem nie wyrobiłem się w 6min a tyle mam czasu.

Pozostało 580 znaków

zeko
2011-01-10 09:11
zeko
0

miało być ((a2)+(b2)) te forum zamieniło

Pozostało 580 znaków

2011-01-10 09:12

Rejestracja: 12 lat temu

Ostatnio: 1 minuta temu

2011-01-10 10:39

Rejestracja: 16 lat temu

Ostatnio: 51 sekund temu

0
double n = sqrt(x);
if (n == (int)n)
  cout<<"jest liczbą całkowitą"<<endl;

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0