Задачи на нахождение натуральных и дружественных чисел с использованием циклов - 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. Программа находит два числа от пользователя, одно больше другого.
  2. Если числа не соответствуют этому условию, программа завершается.
  3. Затем программа проверяет каждое число от большего до меньшего на то, является ли оно простым.
  4. Для каждого числа от большего до меньшего программа сначала вычисляет квадрат числа, а затем выделяет массив символов для этого числа.
  5. Затем программа сравнивает символы в обратном порядке с символами в прямом порядке.
  6. Если символы не совпадают, программа выводит сообщение о том, что число не является простым.
  7. Если символы совпадают, программа выводит сообщение о том, что число является простым.
  8. Если число равно 1, программа выводит сообщение о том, что число не является простым.
  9. Если число больше 9, программа вызывает функцию для вычисления длины числа.
  10. Если число меньше или равно 9, программа возвращает 1.
  11. Если число больше 9, программа рекурсивно вызывает функцию для вычисления длины числа, пока число не станет меньше или равным 9.
  12. Если число меньше или равно 9, программа возвращает 1.
  13. Если число больше 9, программа возвращает результат вычисления функции вычисления длины числа.
  14. Если число меньше или равно 9, программа возвращает 1.
  15. Программа завершается.

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


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

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

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