Наибольший простой делитель числа и Решето Эратосфена - 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]

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.375 из 5
Похожие ответы