Найти количество делителей каждого из целых чисел от 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;
}
Объяснение кода листинга программы
- Объединение двух заголовочных файлов:
и . - Установка значений для переменных: N=190, M=210.
- Создание переменных: i, j, count, max, x.
- Вывод шапки таблицы:
Number: Divisors: Divisors quantity:. - Организация двух циклов: внешний - перебирает числа от N до M включительно; внутренний - перебирает делители текущего числа от 2 до самого числа.
- Проверка делимости числа на текущий делитель.
- Вывод делителей текущего числа.
- Вывод дополнительных пустых столбцов для количества делителей.
- Вывод количества делителей текущего числа.
- Обновление максимального количества делителей и нахождения числа с максимальным количеством делителей.
- Вывод сообщения о числе с наибольшим количеством делителей.
- Завершение работы программы.