Задачи на нахождение натуральных и дружественных чисел с использованием циклов - C (СИ)
Формулировка задачи:
Помогите пожалуйста решить задачки, заранее благодарна ;3
1. Найти натуральное число, состоящее из трёх цифр, с возрастающими слева направо цифрами, являющееся полным квадратом. Число является полным квадратом, если квадратный корень из него есть простое число (число 121 – полный квадрат, т.к. 121=11*11, а 11 – простое число).
Тут я как-то представляю себе это, но как обозначить - хз.
2. Два натуральных числа называют дружественными, если каждое из них равно сумме всех делителей другого, кроме самого этого числа. Найдите все пары дружественных чисел на отрезке [a,b].
Решение задачи: «Задачи на нахождение натуральных и дружественных чисел с использованием циклов»
textual
Листинг программы
#include <stdio.h> void is_palindrome(int); int length(long unsigned); int main() { int start, end; int i; printf("start: "); scanf("%i", &start); printf("end : "); scanf("%i", &end); if (start>end) return 1; for (;start<=end; ++start) is_palindrome(start); return 0; } void is_palindrome(int n) { int i, j; int pal; // palindrome long unsigned cnn, nn = (long unsigned)n * n; i = length(nn); char array[i+1]; j=i; cnn = nn; if (i<2) return; while (--j>=0) { array[j] = cnn % 10 + '0'; cnn /= 10; } pal = 1; for (j=0; j< i/2; ++j) if (array[j]!= array[i-1-j]) pal = 0; if (pal) printf("%i * %i = %lu\n", n, n, nn); } int length(long unsigned nn) { return nn>9? length(nn/10)+1: 1; }
Объяснение кода листинга программы
- Программа находит два числа от пользователя, одно больше другого.
- Если числа не соответствуют этому условию, программа завершается.
- Затем программа проверяет каждое число от большего до меньшего на то, является ли оно простым.
- Для каждого числа от большего до меньшего программа сначала вычисляет квадрат числа, а затем выделяет массив символов для этого числа.
- Затем программа сравнивает символы в обратном порядке с символами в прямом порядке.
- Если символы не совпадают, программа выводит сообщение о том, что число не является простым.
- Если символы совпадают, программа выводит сообщение о том, что число является простым.
- Если число равно 1, программа выводит сообщение о том, что число не является простым.
- Если число больше 9, программа вызывает функцию для вычисления длины числа.
- Если число меньше или равно 9, программа возвращает 1.
- Если число больше 9, программа рекурсивно вызывает функцию для вычисления длины числа, пока число не станет меньше или равным 9.
- Если число меньше или равно 9, программа возвращает 1.
- Если число больше 9, программа возвращает результат вычисления функции вычисления длины числа.
- Если число меньше или равно 9, программа возвращает 1.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д