Наибольший простой делитель числа и Решето Эратосфена - C (СИ)
Формулировка задачи:
Необходимо найти наибольший простой делитель числа "n", используя решето Эратосфена. Программа работает для чисел < 10^6. Но необходимо чтобы она вычисляла и бОльшие числа. Знаю что для этого необходимо использовать √n но так и не получилось довести ее до ума.знаю что ответ близко, но так и не нашел похожих алгоритмов для работы с большими числами. Хотелось бы узнать как ее можно доделать.
Заранее спасибо)
#include <stdio.h>
#include <math.h>
int main()
{
int i, j, k;
unsigned long n, a[n], m;
scanf ("%lu", &n);
for (i = 0; i <= n; i++) a[i] = i; /*заполнение решета*/
a[1] = 0;
for (j = 2; j <= n; j++) { /*вычеркивание лишних чисел*/
if (a[j] != 0) {
for (k = j*2; k <= n; k = k + j) {
a[k] = 0;
}
}
}
/*поиск max элемента*/
...
return 0;
}Решение задачи: «Наибольший простой делитель числа и Решето Эратосфена»
textual
Листинг программы
long a[n]