Форум программистов, компьютерный форум CyberForum.ru

Вычислить наименьшее общее кратное всех целых чисел от 1 до n - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не могу справиться с длинной арифметикой http://www.cyberforum.ru/cpp-beginners/thread1155367.html
Не могу никак одолеть следующую задачу: В нашем зоопарке появился заяц. Его поместили в клетку, и чтобы ему не было скучно, директор зоопарка распорядился поставить в его клетке лесенку. Теперь наш зайчик может прыгать по лесенке вверх, перепрыгивая через ступеньки. Лестница имеет определенное количество ступенек N. Заяц может одним прыжком преодолеть не более К ступенек. Для разнообразия...
C++ Числа Фибоначчи Числа Фибоначчи {u}_{0},{u}_{1},{u}_{2},... определяются следующим образом: {u}_{0}=0,{u}_{1}=1,{u}_{n}={u}_{n-1}+{u}_{n-2} (n=2,3,...). Составить программу вычисления {u}_{n} для данного неотъемлемого целого n, которая будет включать рекурсивную функцию, которая основана на использовании соотношения {u}_{n}={u}_{n-1}+{u}_{n-2} http://www.cyberforum.ru/cpp-beginners/thread1155358.html
C++ Банкомат. В чем ошибка?
Лимит времени 2000/4000/4000/4000 мс. Лимит памяти 65000/65000/65000/65000 Кб. Автор: Фёдор Меньшиков, ВГПУ. Реальный текст программы. ATM may contain notes of four kinds: 50, 100, 500 and 1000 rubles. Amount of notes of each kind at any moment is a non-negative integer number. 0 means that there are no notes of this kind. The lack of some notes may be filled with notes of smaller cost....
C++ Программа переноса слов по слогам исправить ошибки
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> const maxrule=4;//êîë-âî ïðàâèë ïåðåíîñà...ìîæåòå äîïèñàòü ñâîè... ô-öèÿ äîëæíà ïðèíèìàòü ñëîâî è âîçâðàùàòü ïîçèöèþ äå ìîíà ïåðåíåñòè. int gl(char lit) { int i,res=0; char *glasn="óåûàîýÿèþ¸"; //char *glasn="eyuioav"; for (i=0;i<strlen(glasn);i++)
C++ Составить программу для вычисления среднего объема шаров http://www.cyberforum.ru/cpp-beginners/thread1155350.html
Решите пожалуйста=* Составить программу для вычисления Z=\frac{{V}_{1}+{V}_{2}+{V}_{3}}{3} где - {V}_{1},{V}_{2},{V}_{3} - объемы шаров с радиусами {r}_{1},{r}_{2},{r}_{3}, Вычисление объема шара по формуле V=\frac{4}{3}\pi {R}^{2} оформить при помощи функции.
C++ Трабл с решением задания, условные операторы Здраствуйте, возникла определенная проблема при решении задания. Полагаю, не суть, что за задание, проблема вот в чем: В приведенном ниже алгоритме: #include <stdio.h> #include <conio.h> #include <math.h> int main() { float x, y; подробнее

Показать сообщение отдельно
coby9
0 / 0 / 0
Регистрация: 21.04.2014
Сообщений: 3

Вычислить наименьшее общее кратное всех целых чисел от 1 до n - C++

23.04.2014, 17:40. Просмотров 1050. Ответов 0
Метки (Все метки)

Есть 2 программы : (Вычислите наименьшее общее кратное всех целых чисел от 1 до n.
Входной файл содержит число n (1 ≤ n ≤ 1000).
Выведите целое число — ответ на задачу.) и (Найти наименьшее общее кратное набора из N целых чисел, лежащих в диапазоне от 1 до 1000. Под наименьшим общим кратным набора чисел понимается наименьшее из таких чисел, которые делятся на любое из чисел набора.Формат ввода
В первой строке задается количество чисел N (1 ≤ N ≤ 20) в наборе. Во второй строке перечисляются через пробел в любом порядке все N целых чисел набора.
Формат вывода
Вывести полученное наименьшее общее кратное для заданного набора чисел.)

Алгоритм в программах одинаковый, разница только со вводом данных! Реализовал поиск НОК обычном перебором в цикле, все работает, но программа превышает лимит времени! нужно реализовать с помощью разложения чисел на простые множители! Попытался реализовать http://math-prosto.ru/?page=pages/fi...k/find_nok.php второй способ! с помощью массивов, никак не могу добитья нужного результата, МБ кто подскажет! вот мой код:


int n,i,c,j,p,a,d,t,k;
main()
{scanf("%i",&n);
int A[n],B[n];
a=1;
for(i=0;i<n;i++)
{ A[i]=i+1;
//scanf("%d",&A[i]);
//if (a<A[i]) a=A[i];
}
a=n;
p=a;

//printf("%d",a);

d=2;
j=0;
while(d <=a)
{
if(a%d==0)
{ B[j]=d; //в массив В записываю простые множители наибольшего числа из исходного массива
a=a/d;
j++;
}
else
d=d+1;

}
t=1;
for (k=1;k<n-1;k++)
{
d=2;
i=0;
while(d <=A[k])
{
if(A[k]%d==0)
{
for (i=0;i<j-1;i++)
{ if (B[i]!=d)
{ t=d;
break;
}
if (B[i]==d) break;
}
A[k]=A[k]/d;
}

d=d+1;
p=p*t;
//printf("____%d",p);
t=1;
}
}

for(k=0;k<j;k++)
//printf("%d",B[k]);

printf("____%d",p);
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru