Задать вопрос
11 июля, 04:59

Разложить число на простые числа

Например 20 = 2^2 + 5^1

Желательно с оптимизацией, чтоб для 6-значных чисел не считалось пол часа

Программу можно писать на любом языке из C-подобных, Ruby, Pascal, VB и тп

+4
Ответы (1)
  1. 11 июля, 08:18
    0
    Var

    i, k, n, p:longint;

    f:array[1 ... 10,1 ... 2] of longint;

    begin

    p:=2; i:=1;

    f[1,1]:=1; f[1,2]:=1;

    Write ('Введите натуральное число не больше 2 147 483 647: ') ;

    Read (n) ;

    Write (n,' = 1') ;

    while n1 do begin

    if (n mod p) = 0 then begin

    if f[i, 1]p then

    begin Inc (i) ; f[i, 1]:=p; f[i, 2]:=1 end

    else Inc (f[i, 2]) ;

    n:=n div p

    end

    else inc (p)

    end;

    k:=i;

    for i:=2 to k do

    begin

    Write (' x ', f[i, 1]) ;

    if f[i, 2]>1 then Write ('^', f[i, 2])

    end;

    Writeln

    end.

    Тестовое решение:

    Введите натуральное число не больше 2 147 483 647: 223092870

    223092870 = 1 x 2 x 3 x 5 x 7 x 11 x 13 x 17 x 19 x 23

    Введите натуральное число не больше 2 147 483 647: 65536

    65536 = 1 x 2^16

    Введите натуральное число не больше 2 147 483 647: 2147483647

    2147483647 = 1 x 2147483647
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Разложить число на простые числа Например 20 = 2^2 + 5^1 Желательно с оптимизацией, чтоб для 6-значных чисел не считалось пол часа ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы
Похожие вопросы по информатике
1) Вычислить длину окружности и площадь круга одного и того же заданного радиуса R. Pascal (желательно с блок-схемой) 2) Найти сумму членов арифметической прогрессии, если известны её первый член, знаменатель и число членов прогрессии Pascal
Ответы (1)
Как описывают переменные в Pascal? Какие стандартные числовые типы языка Pascal вам известны? Что вам известно о соответствии типов переменных в языке Pascal? Какие арифметические операции можно выполнять в Pascal?
Ответы (1)
1. Составьте программу в Pascal ABC. Даны три числа. Найти сумму двух наибольших из них. 2. Составьте программу в Pascal ABC.
Ответы (1)
1. Составьте программу в Pascal ABC. Известно, что X кг конфет стоит A рублей. Определить, сколько стоит 1 кг и Y кг этих же конфет. 2. Составьте программу в Pascal ABC. Дано двузначное число. Найти сумму и произведение его цифр. 3.
Ответы (1)
Вычислить произведение четырех натур. чисел, используя только операцию сложения. (Язык пр:pascal) 1) Написать программу (обычную) 2) Написать программу с использованием процедуры 3) Написать программу с исп. функции 4) Написать программу с исп.
Ответы (1)