М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Spokeup
Spokeup
23.05.2023 12:46 •  Информатика

C++ или си: представить натуральное число n в виде произведения простых сомножителей.

👇
Ответ:
lyudagrigoreva2
lyudagrigoreva2
23.05.2023
#include <iostream>
#include <cmath>
using namespace std;
bool prost(int m){
int k = 0;
for (int i=2; i<=sqrt(m); i++)
if (m % i == 0) k++;
return k==0;
}

int main(){
    int n, r;
    int i = 1;
    cout << "n = ", cin >> n, cout << "\n";
    if (prost(n)) {
    cout << "1 * " << n << " = " << n << "\n";}
    else {
    r = n;
    while (r != 1){
    i++;
    if (prost(i)){
    while (r % i == 0){
    r = r / i;
    cout << i;
    if (r != 1) cout << "*";
    }
  }
  }
  cout << "=" << n << "\n";
    }
return 0;
}

Пример:
n = 2720
2*2*2*2*2*5*17=2720
4,5(43 оценок)
Ответ:
Gofer535
Gofer535
23.05.2023
#include <iostream>#include <cstdlib>#include <vector>bool fPrime(int n){ for (int i = 2; i <= n / 2; i++) if (n%i == 0) return false; return true;}int main(){ int num, n, i, copy; std::vector<int> PrimDiv; std::cin >> num; copy = num; for (n = 2; n <= num / 2 && num != 0; n++) if (fPrime(n) == true) while (copy%n == 0) { PrimDiv.push_back(n); copy /= n; } std::cout << num << "="; if (PrimDiv.empty()) std::cout << num; else { for (i = 0; i<PrimDiv.size() - 1; i++) std::cout << PrimDiv[i] << "*"; std::cout << PrimDiv[PrimDiv.size() - 1]; } system("pause"); return 0;}
4,5(68 оценок)
Открыть все ответы
Ответ:
nik20042002
nik20042002
23.05.2023

а)89/2 = 44, остаток: 1

44/2 = 22, остаток: 0

22/2 = 11, остаток: 0

11/2 = 5, остаток: 1

5/2 = 2, остаток: 1

2/2 = 1, остаток: 0

1/2 = 0, остаток: 1

8910 = 10110012


б)600/2 = 300, остаток: 0

300/2 = 150, остаток: 0

150/2 = 75, остаток: 0

75/2 = 37, остаток: 1

37/2 = 18, остаток: 1

18/2 = 9, остаток: 0

9/2 = 4, остаток: 1

4/2 = 2, остаток: 0

2/2 = 1, остаток: 0

1/2 = 0, остаток: 1

60010 = 10010110002

в)2010/2 = 1005, остаток: 0

1005/2 = 502, остаток: 1

502/2 = 251, остаток: 0

251/2 = 125, остаток: 1

125/2 = 62, остаток: 1

62/2 = 31, остаток: 0

31/2 = 15, остаток: 1

15/2 = 7, остаток: 1

7/2 = 3, остаток: 1

3/2 = 1, остаток: 1

1/2 = 0, остаток: 1

201010 = 111110110102

4,6(71 оценок)
Ответ:

Для того, чтобы перевести число из десятичной системы в двоичную, нужно делить число на 2 и записывать остаток:

а. 89 ÷ 2 = 44, остаток 1;

44 ÷ 2 = 22, остаток 0;

22 ÷ 2 = 11, остаток 0;

11 ÷ 2 = 5, остаток 1;

5 ÷ 2 = 2, остаток 1;

2 ÷ 2 = 1, остаток 0;

1 ÷ 2 = 0, остаток 1

Запишем остатки от деления в обратном порядке: 1011001.

89₁₀ = 1011001₂

По такой же аналогии переведём остальные числа:

б. 600 ÷ 2 = 300, остаток 0;

300 ÷ 2 = 150, остаток 0;

150 ÷ 2 = 75, остаток 0;

75 ÷ 2 = 37, остаток 1;

37 ÷ 2 = 18, остаток 1;

18 ÷ 2 = 9, остаток 0;

9 ÷ 2 = 4, остаток 1;

4 ÷ 2 = 2, остаток 0;

2 ÷ 2 = 1, остаток 0;

1 ÷ 2 = 0, остаток 1;

600₁₀ = 1001011000₂

в. 2010 ÷ 2 = 1005, остаток 0;

1005 ÷ 2 = 502, остаток 1;

502 ÷ 2 = 251, остаток 0;

251 ÷ 2 = 125, остаток 1;

125 ÷ 2 = 62, остаток 1;

62 ÷ 2 = 31, остаток 0;

31 ÷ 2 = 15, остаток 1;

15 ÷ 2 = 7, остаток 1;

7 ÷ 2 = 3, остаток 1;

3 ÷ 2 = 1, остаток 1;

1 ÷ 2 = 1, остаток 1;

2010₁₀ = 11111011010₂

4,4(84 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ