Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Гафическое изображение делимости


Автор: STRIKER221 30.12.2006, 19:58
Составьте программу для графического изображения делимости чисел от 1 до n (n- с клавиатуры). В каждой строке надо напечатать очередное число и столько символов “+”, сколько делителей у этого числа. Например, если n=4:
1+
2++
3++
4+++

Автор: Pete 30.12.2006, 22:39
http://forum.vingrad.ru/topic-129432.html

Код

#include <iostream>
#include <cmath>

using namespace std;

int num_of_dividers( int n )
{
  int i;
  int sq = (int) sqrt( n );
  int num = 2;
  
  if (n == 1) return 1;
  if (n == 2) return 2;
  for (i = 2; i < sqrt( n ); i++)
    if (n%i == 0) num += 2;
  if (n%sq == 0 && sq > 1) num++;
  
  return num;
}

int main( void )
{
  int n, num;
  
  cin >> n;
  
  for (int i = 1; i <= n; i++) {
    printf( "%d", i );
    num = num_of_dividers( i );
    for (int j = 0; j < num; j++)
      putchar( '+' );
    putchar( '\n' );
  }
  
  return 0;
}


Добавлено @ 22:43 
Авторы тем!
Пожалуйста, не забывайте своевременно помечать их решенными. Это избавит остальных пользователей от траты времени на изучение Вашей проблемы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)