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

Program do faktoryzacji_prośba o sprawdzenie

0 głosów
282 wizyt
pytanie zadane 11 grudnia 2015 w C i C++ przez skar15 Początkujący (330 p.)

Mam prośbę o sprawdzenie takiego krótkiego programu do faktoryzacji liczb...faktoryzuje wyłącznie nieparzyste liczby wielkosci  int64..z większymi liczbami wszystko przedemną...sporo nauki. Wg mnie robi to bardzo szybko aczkolwiek zbyt mało wiem na ten temat.

Pozdrawiam

#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <time.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>

using namespace std;
int64_t a,n,l,m,mod,k, b,c;
int stop;
int main()
{
    cout << "Hello world!" << endl;
time_t czas;
    struct tm * ptr;
    time( & czas );
    ptr = localtime( & czas );
    char * data = asctime( ptr );
   std::cout << "Data: " << data;

   cout<<"wpisz liczbe do faktoryzacji"<<endl;
   cin>>a;




   for(n=1; n<a/7; n++)
   {
     k=n;

   l=a+1+2*k;
   m=2+4*k;
   mod=l%m;

   if(mod==0)
   {
      b=l/m;
      b=b*2-1;
      cout << "dzielnik =    "<<b<<endl;
      c=a/b;
      cout << "dzielnik =     "<<c<<endl;

      cout<<b<< " * "<<c<<" =   "<<b*c<<endl;
      cin>>stop;
   }


   }

   cout<<"znalazlem liczbe pierwsza   "<<a<< endl;
    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 11 grudnia 2015 przez niezalogowany

Możesz powiedzieć z jakiego algorytmu / twierdzenia korzystasz? Oraz co rozumiesz pod tym, że sposób jest "szybki"?

Bo moim zdaniem twój jest dość powolny, w dodatku źle działający (1 to nie liczba pierwsza), a przy 12 cyfrowych liczbach czekanie na odpowiedź to jakiś żart (sprawdź sam:121392937879)

komentarz 11 grudnia 2015 przez skar15 Początkujący (330 p.)
edycja 11 grudnia 2015 przez skar15
ok sprawdze..a algorytm hm..sam ułozyłem...dzieki...w ciagu liczb nieparzystych co np 7  dzieli sie przez 7..wyprowadzilem wzór i napisałem ten super program...:) ..a szybki ..po prostu nie obeznany jestem z tematem

k=( il +1 + 2n )/( 2+4n )       n to kolejne liczby naturalne...k miejsce wystepowania liczby (k) wzor sie sprawdza...

daną liczbę zapisac mozna w ciagu liczb nieparzystych jako k2-1..wielokrotność kolejna będzie zawsze na k +(k2-1) czyli iloczyn a to oznacza ze bedzie on miał postac

[ k+(2k-1)]2-1...poprzekształcalem i wyszedl wzór...uczę się po trochu c++..takie przygody
komentarz 11 grudnia 2015 przez skar15 Początkujący (330 p.)
a to liczba pierwsza..zgadza sie ..liczby pierwsze długo dochodzi do prawdy....bo program ma słuzyć do faktoryzacji...wydawało mi sie że faktoryzacja jest szybka..;)
komentarz 11 grudnia 2015 przez niezalogowany
I tak jest dość wolna, chociaż faktycznie radzi sobie ok dla tych mniejszych, teraz dopiero zauważyłem że ty to robisz na int64.

Podobne pytania

0 głosów
0 odpowiedzi 941 wizyt
pytanie zadane 19 grudnia 2022 w PHP przez Kaduq Użytkownik (780 p.)
0 głosów
1 odpowiedź 404 wizyt
pytanie zadane 16 marca 2022 w Systemy operacyjne, programy przez MarC_des Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 1,127 wizyt

93,631 zapytań

142,553 odpowiedzi

323,056 komentarzy

63,137 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2416p. - dia-Chann
  2. 2390p. - DziarnowskiJ
  3. 2317p. - raydeal
  4. 2300p. - Adrian Wieprzkowicz
  5. 2243p. - rucin93
  6. 2242p. - Łukasz Piwowar
  7. 2222p. - CC PL
  8. 2117p. - Łukasz Eckert
  9. 2082p. - Michal Drewniak
  10. 1957p. - Maurycy W
  11. 1885p. - robwarsz
  12. 1811p. - rafalszastok
  13. 1600p. - Rafał Trójniak
  14. 1588p. - Tomasz Bielak
  15. 1377p. - ssynowiec
Szczegóły i pełne wyniki

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
...