Найти количество делителей каждого из целых чисел от 190 до 210 (отформатировать вывод результата) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Ребят , помогите , не могу сделать аккуратный вывод столбцов в проге , все сделал кроме столбцов , вот условие задачи /////Найти количество делителей каждого из целых чисел от 190 до 210. Вывести результат в виде следующей таблицы (столбец «Делители» содержит по четыре числа в строке) Число Делители Кол.дел. 99 3, 9, 11, 33 4 100 2, 4, 5, 10, 20, 25, 50 7 101 ... ... Определить наибольшее число из данного интервала, у которого количество делителей максимально.///// Вот код:
#include <stdio.h>
 
int main(void)
{
    int i, i1, n, d, c;
    n=0;
    d=420;
    c=0;
    printf("Chislo          Deliteli          Kol.del.\n");//по десять пробелов
    for (i=400; i<=420; i++){
        printf("%d                   ", i);
        for(i1=2; i1<=i/2; i1++){
            if (i%i1==0){
                n+=1;
                if ((n-1)%4==0 && (n-1)!=0){
                    printf(", ");
                    printf("\n          ");}//десять пробелов
                else if (n>1)
                    {printf(", ");}
                printf("%3d", i1);}}
        printf("          ");//десять пробелов
        printf("%d\n", n);
        if (n<=d && n!=0){
            d=n;
            c=i;}
        n=0;
    }
    printf("\nNaibolshee chislo s minimalnim kol-vom deliteley: %d\n\n", c);
    return 0;
}

Решение задачи: «Найти количество делителей каждого из целых чисел от 190 до 210 (отформатировать вывод результата)»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#define N 190
#define M 210
int main()
{
    int i, j, count = 0, max = 0, x = 0;
    puts("Number:    Divisors:                                           Divisors quantity:");
    for(i = N; i <= M; i++){
        printf("%4d    ", i);
        for(j = 2, count = 0; j * 2 <= i; j++){
            if(i % j == 0){
                printf("%4d", j);
                count++;
            }
        }
        for(int k = count; k < 16; k++)
            printf("    ");
        printf("%4d\n", count);
        if(count > max){
            max = count;
            x = i;
        }
    }
    printf("\nnumber %d has the greatest number of divisors: %d\n", x, max);
    return 0;
}

Объяснение кода листинга программы

  1. Объединение двух заголовочных файлов: и .
  2. Установка значений для переменных: N=190, M=210.
  3. Создание переменных: i, j, count, max, x.
  4. Вывод шапки таблицы: Number:    Divisors:                                     Divisors quantity:.
  5. Организация двух циклов: внешний - перебирает числа от N до M включительно; внутренний - перебирает делители текущего числа от 2 до самого числа.
  6. Проверка делимости числа на текущий делитель.
  7. Вывод делителей текущего числа.
  8. Вывод дополнительных пустых столбцов для количества делителей.
  9. Вывод количества делителей текущего числа.
  10. Обновление максимального количества делителей и нахождения числа с максимальным количеством делителей.
  11. Вывод сообщения о числе с наибольшим количеством делителей.
  12. Завершение работы программы.

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


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

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

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