• 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

Object Storage Arubacloud
0 głosów
170 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 269 wizyt
pytanie zadane 19 grudnia 2022 w PHP przez Kaduq Użytkownik (780 p.)
0 głosów
1 odpowiedź 153 wizyt
pytanie zadane 16 marca 2022 w Systemy operacyjne, programy przez MarC_des Nowicjusz (120 p.)
0 głosów
1 odpowiedź 532 wizyt

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...