![]() КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Упражнения. Делители целого числа
Делители целого числа Пример 1. Найти все делители неотрицательного целого числа n. Вариант 1.Самый простой способ решения – это проверить по очереди делимость числа n на каждое из чисел 1,2,3,..., n. Число операций можно сократить, доказав, что в интервале [n/2+1,n-1] делителей числа n нет. #include <iostream.h> main() { int n,d; cin>>n; for (d=1;d<=n/2;d++) if(n%d==0) cout<<d<<endl; }
Вариант 2. Для нахождения делителей числа n, достаточно обнаружить делители не превышающие значения квадратного корня из числа n. Все остальные делители получаются в результате деления числа n на найденные делители.
#include <iostream.h> main() { int n,d; cin>>n; for (d=1;d*d<n;d++) if(n%d==0) cout<<d<<", "<<n/d<<endl; if(d*d==n) cout<<d<<endl; } Пример 2. Найти наибольший делитель двух неотрицательных целых чисел. Решение основано на алгоритме Евклида, многократно использующим целочисленную операцию деления с остатком: n=q*m+r0, m=q0*r0+r1, r0=q1*r1+r2 .......................... rk-1=qk*rk+rk+1, ........... rj-1=qj*rj, где rj – наибольший общий делитель. #include <iostream.h> main() { long int n,m,r,tmp; cin>>n>>m; if(m>n) { tmp=m; m=n; n=tmp;} while(m>0) { r=n%m; n=m; m=r; } cout<<n; }
Пример 3. Найти все простые числа, меньшие заданного натурального числа n. Вариант 1. Для решения задачи необходимо проверить имеют ли числа из заданного интервала делители, не превышающие значения квадратного корня из числа n.. Четные числа можно не рассматривать, поскольку они делятся на два.
#include <iostream.h> main() { int d,k,n; cin>>n; cout<<1<<endl<<2<<endl<<3<<endl; k=5; while (k<=n) { for (d=2;d*d<=k && k%d!=0;d++) ; if(d*d>k) cout<<k<<endl; k=k+2; } } 1. Дано натуральное число N. Получить все его натуральные делители. 2. Найти количество делителей натурального числа N. Сколько из них четных?
3. Найти сумму нечетных делителей натурального числа N. 4. Найти все натуральные числа из интервала от 1 до 200, у которых количество делителей равно N. 5. Найти сумму целых чисел из промежутка от 1 до 200, у которых ровно 5 делителей 6. Найти все целые числа из промежутка от 100 до 300, у которых сумма делителей равна К. 7. Найти натуральное число лежащее в диапазоне от 1 до 10000 с максимальной суммой делителей. 8. Найти все натуральные числа из промежутка от К до L, у которых количество делителей превышает заданное число М. 9. Найти сумму четных делителей натурального числа N. 10. Найти все натуральные числа из промежутка от 1 до 200, у которых сумма четных делителей равна N. 11. Найти количество делителей натурального числа N. больших К. 12. Найти все целые корни уравнения ax3+bx2+cx+d=0, где a,b,c,d – целые числа. 13. Даны целые числа p и q Получить все делители числа q, взаимно простые с p 14. Дано целое число n.Получить все простые делители этого числа 15. На интервале (1000, 9999) найти все простые числа, каждое из которых обладает тем свойством, что сумма первой и второй цифр в записи этого числа равна сумме третьей и четвертой цифр. 16. Даны натуральные числа К, Ь (К < Ь). Получить все простые числа I, удовлетворяющие неравенству: К < I < Ь, используя решето Эратосфена. 17. Дано натуральное число N > 2. Составить программу разложения этого числа на простые множители. Каждый простой множитель L должен быть выведен k раз, где k-натуральное число, такое, что N делится на Lk и не делится на Lk+1; 18. Дано натуральное число N > 2. Составить программу разложения этого числа на простые множители. Каждый простой множитель должен быть выведен один раз 19. Найти наибольший общий делитель (НОД) трех чисел, используя соотношение НОД(К,L,М) = НОД(НОД(К, L), M) и алгоритм Евклида 20. Даны натуральные числа М, N. Получить все кратные им числа, меньшие МхN
21. Для натуральных чисел К и L определить наименьшее общее кратное (НОК), используя соотношение: НОД (K,L)=KL/ НОД (K,L) Даны M (М > 2) натуральных чисел: N1,N2,..., Nм. Вычислить НОД (N1,N2,..., Nм), используя соотношение НОД(N1,N2,..., Nм)= НОД(НОД(N1,N2,..., Nм-1), Nм) и алгоритм Евклида.. 22. Найти все простые несократимые дроби, заключенные между 0 и 1, знаменатели которых не превышают 7 (дробь задается двумя натуральными числами - числителем и знаменателем) 23.. Составить программу сложения двух дробей. Результат сложения - несократимая дробь 24. Составить программу для нахождения всех совершенных чисел, меньших заданного числа N. Совершенным называется число, равное сумме всех своих положительных делителей (включая единицу, но исключая само число). Например, 28 - совершенное число, т.к. 28 = 1 + 2 + 4 + 7 + 14.. 25. Даны натуральные числа N. М. Найти все пары натуральных дружественных чисел, лежащих в диапазоне от N до М. Два числа называются дружественными, если каждое из них равно сумме всех делителей другого (само число в качестве делителя не рассматривается)..
Дата добавления: 2014-10-31; Просмотров: 965; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |