[C] Przedstaw losową liczbę całkowitą w postaci iloczynu liczb pierwszych

MlodyMatematykAmator
Użytkownik
Użytkownik
Posty: 55
Rejestracja: 23 mar 2019, o 17:45
Płeć: Mężczyzna
wiek: 19
Lokalizacja: Kraków
Podziękował: 16 razy

[C] Przedstaw losową liczbę całkowitą w postaci iloczynu liczb pierwszych

Post autor: MlodyMatematykAmator »

Witam. Mam zadanie, w którym polecono mi stworzyć program w języku C przedstawiający losową liczbę całkowitą w postaci iloczynu liczb pierwszych. Udało mi się napisać program, jednak mimo, że się kompiluje bez błędów - jego działanie to migająca kreska, nic się nie dzieje! Mógłby ktoś powiedzieć co robię źle? Czy to może przez zbyt długie i złożone działanie programu? Jeśli tak, to czy moglibyście doradzić jak przerobić ten program, by poprawnie kończył działanie w miarę szybko?

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

long long losuj(void) {
	return rand() + 2.0;
}

int main(void)
{
	srand((unsigned) time(NULL));
	long long n=losuj();	
	long long koniec=ceil(sqrt (n));	
	int A[koniec];
	int i=0;
	int k=2;
	while(i<koniec) {
		A[i]=1;
		i++;
	}
	i=2;
	while(i<koniec) {
		if(A[i]==1) {
			while(i*k<koniec) {
				A[i*k]=0;
				k++;
			}
		}
		else i++;
		k=2;
	}
	i=0;
	printf("%lld = ", n);
	while(A[i]!=0)
		while(n % A[i]==0) {
			printf("%d * ", A[i]);
			i++;
			}
        return 0;
}
Z góry dziękuję i pozdrawiam.

Dodano po 23 godzinach 59 minutach 22 sekundach:
Temat do usunięcia
ODPOWIEDZ