Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Целое число со знакомЦелые числа – это положительные или отрицательные целые числа, состоящие из знака и последовательности цифр. Основные операции с целыми числами: § присваивание; § унарные арифметические операции: изменение знака +, -; § бинарные арифметические операции: +, -, *, /, %; § операции отношения: = =, !=, <, >, <=, >=.
Набор функций для работы с целыми числами: 1. Определить количество разрядов в числе. int Counter (long Number) { int k = 1; while ((Number/(long) pow(10,k)) > 0) k++; return k; } 2. Записать каждую цифру в числе отдельно. void Category (long Number) { int count = Counter (Number); long t; for (int i = count - 1; i >= 0; i --) { t = Number / (long) pow (10, i); t = t % 10; printf ("%d ", t); } } 3. Записать число наоборот. long Reverse (long Number) { long result = 0; while (Number >0) { result = (result*10) + Number % 10; Number /= 10; } return result; } 4. Проверить, является число симметричным? int Symmetry (long Number) { if (Reverse (Number) == Number) return 1; return 0; } 5. Вывести все делители числа. void Deletes (unsigned int Number) { unsigned int count = 0, d, i = 1, m = 2; if ((Number%2) != 0) // если число нечётное { i = 2; m = 3; } for (d = m; d <= Number / 2; d + = i) if ((Number % d) == 0) { printf(" %u\t", d); count ++; } if (count > 0) printf ("- это делитель(и)! "); else printf ("\n Число не имеет делителей! "); } 6. Проверить, является число совершенным (равно сумме всех его сомножителей, за исключением самого числа)? void Perfect (unsigned int Number) { unsigned int sum = 1, d; for (d = 2; d <= Number / 2; d ++) if ((Number % d) == 0) sum += d; if (sum == Number) printf ("Число совершенное! "); else printf ("Число несовершенное! "); } 7. Проверить, является ли нечётное число простым (не имеет делителей, кроме единицы и самого себя)? int Simple (long Number) { for(int i = 3; i <= (long) sqrt (Number); i += 2) if ((Number % i ) == 0) return 0; return 1; } 8. Разложить число на простые сомножители. void Simple_Multiply (int Number) { int i, tmp; printf ("\n"); tmp = Number; while ((Number %2) == 0) //пока число чётное, выводим все «двойки» { Number /= 2; if(Number> 1) printf ("2*"); else { printf ("2"); break;} } for (i = 3; i <= (tmp/2); i += 2 ) if ((Number % i) ==0 && Simple (i)) while ((Number % i) == 0) { Number = Number / i; if (Number > 1) printf ("%d*", i); else { printf ("%d", i); break; } } } 9. Найти наибольший общий делитель двух чисел способом перебора всех возможных. void Common_ Deleted (int a, int b) { int x, i; if (a > b) { x = a; a = b; b = x;} for ( i = a; i > 1; i --) if (( a % i = = 0) && ( b % i = = 0)) break; printf ("\n Наибольший общий делитель = %d", i ); } 10. Перевести число в k-ричную систему счисления (k = 2…9). long Convert (int Number, int base) { long result = 0L; int t = 0; while(Number > 0) { result = result + (Number % base) *(long) pow (10, t); Number /= base; t++; } return result; }
Дата добавления: 2014-11-14; просмотров: 309; Нарушение авторских прав Мы поможем в написании ваших работ! |