Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
1 / 1 / 0
Регистрация: 20.11.2014
Сообщений: 8

Как представить натуральное число в виде произведения двух простых чисел

20.11.2014, 21:31. Показов 6924. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел что то похожее только, там 3 простых числа, и проблема в том что код написан на Paskalе, если можете объяснить или написать код для Borland C++, буду очень признателен
Код с 3мя простыми числами:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
uses crt;
function Prost(n:longint):boolean;
var i:longint;
    f:boolean;
begin
if i<2 then f:=false
else
 begin
  f:=true;
  i:=2;
  while(i*i<=n)and f do
  if n mod i=0 then f:=false
  else i:=i+1;
 end;
Prost:=f;
end;
var i,j,k,n:longint;
    f:boolean;
begin
clrscr;
write('Введите натуральное число n=');
readln(n);
i:=2;
f:=false;
while (i<=n div 2)and not f do
 begin
  j:=i;
  while (j<=n div (2*i)) and not f do
   begin
    k:=j;
    while (k<=n div (i*j)) and not f do
    if Prost(i)and(Prost(j))and(Prost(k))
    and(i*j*k=n) then
     begin
      f:=true;
      writeln('Можно ',n,'=',i,'*',j,'*',k);
     end
    else k:=k+1;
    if not f then j:=j+1;
   end;
  if not f then i:=i+1;
 end;
if not f then write('Нельзя');
readln
end.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.11.2014, 21:31
Ответы с готовыми решениями:

Представить натуральное число в виде произведения простых множителей
3. Представление натурального числа в виде произведения простых множителей.

Представить любое введенное натуральное число N > 3 в виде суммы трех простых чисел
Написать программу, представляющую любое введенное натуральное число N&gt;3 в виде суммы трех простых чисел

Представить заданное число в виде произведения двух натуральных чисел, чтобы их сумма была максимальной
Помогите с задачей пожалуйста,очень срочно!!! Задано натуральное число x. Необходимо представить его в виде произведения x = a • b (a и b –...

10
Знаток
156 / 156 / 185
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
20.11.2014, 22:16
Лучший ответ Сообщение было отмечено Ripuanvinkoln как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
using namespace std;
bool prostoe(int n)
{
for(int i=2;i<n;i++)
if(n%i==0) return false;
return true;
}
 
 
int main()
{
bool prost=true;
int n;
cin>>n;
for(int i=2;i<n;i++)
if(n%i==0)
{
prost=false;
if(prostoe(i)&&prostoe(n/i))
cout<<i<<'*'<<n/i;
else cout<<"невозможно представить это натуральное число в виде произведения двух простых чисел ";
return 0;
}
 
if(prost) cout<<"натуральное число и есть простое число"; 
 
return 0;
}
1
1 / 1 / 0
Регистрация: 20.11.2014
Сообщений: 8
20.11.2014, 22:47  [ТС]
Amandosov Спасибо большое что так быстро откликнулись))

Добавлено через 15 секунд
Amandosov, Спасибо!)
0
Знаток
156 / 156 / 185
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
20.11.2014, 22:50
Незачто
0
3 / 3 / 2
Регистрация: 06.09.2014
Сообщений: 82
21.11.2014, 06:48
(не по теме вопрос)
я для того что бы можно было писать в
C++
1
cout << "текст";
пишу
C++
1
setlocale (0, "");
Иначе у меня русские буквы не корректно отображаются, у тебя я не увидел подобного, как тогда у тебя они отображаются тогда?
0
1 / 1 / 0
Регистрация: 20.11.2014
Сообщений: 8
21.11.2014, 18:37  [ТС]
Amandosov, Только в Борланде он пишется иначе)) Не затруднит написать код в борланде?)) Я в си разобраться не могу) Спасибо))
0
Знаток
156 / 156 / 185
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
21.11.2014, 18:52
Mak20, я в онлайн компиляторе на сайте cpp.sh компилирую, и там норм отображаются

Добавлено через 1 минуту
Ripuanvinkoln, вопрос не понял, наверно тебе надо на Borland Paskal-е написать?
0
1 / 1 / 0
Регистрация: 20.11.2014
Сообщений: 8
21.11.2014, 19:08  [ТС]
Amandosov, Ну программирование производится в Borland C++ bilder;
А сам код по моему нужно писать в C.

Добавлено через 1 минуту
вот самый пресловутый может даже не рабочий пример)) только что накалякал))
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main(int argc, char* argv[])
{
    int a,i,b;
    double c;
    printf("qwrqwr=  ",a);
    scanf("%ld",&a);
   for(i=2;i<a;i++)
    if (a%i==0)
    {
     b=a/i;
       for (i=2;i<b;i++)
        if (b%i==0)
         {}
         else
         {
         c=b/i;
          printf("b ost0 %lf\n",c);
          }
     }
     else
      {
       c=a/i;
      printf("b ost %lf %ld\n",c,i);
      }
        getch();
}
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12933 / 6801 / 1820
Регистрация: 18.10.2014
Сообщений: 17,213
21.11.2014, 19:18
Цитата Сообщение от Ripuanvinkoln Посмотреть сообщение
Нашел что то похожее
Я не знаю, что за сумрачный гений решал эту задачу на Паскале, но мне кажется, что Основную Теорему Арифметики проходят еще в школе. По крайней мере затрагивают.

Разложить число на произведение ровно N простых: выполняем факторизацию числа и смотрим, сколько получилось множителей. Если ровно N - готов ответ. Если не N - ответа не существует.

Переборные решения - верх бессмыслицы, ибо разложение, если оно существует, возможно только одно и является факторизацией числа.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
using namespace std;
 
unsigned first_prime_factors(unsigned value, unsigned factors[], unsigned nfactors)
{
  unsigned divisor = 2, ifactor = 0;
 
  while (divisor < value)
    if (value % divisor == 0)
    {
      if (ifactor == nfactors)
        return -1;
 
      factors[ifactor++] = divisor;
      value /= divisor;
    }
    else
      ++divisor;
 
  if (value > 1)
  {
    if (ifactor == nfactors)
      return -1;
 
    factors[ifactor++] = value;
  }
 
  return ifactor;
}
 
 
int main()
{
  unsigned value = 0;
  cout << "Chislo: ";
  cin >> value;
 
  unsigned factors[2];
  unsigned nfactors = first_prime_factors(value, factors, 2);
 
  if (nfactors == 2)
    cout << value << " = " << factors[0] << " * " << factors[1] << endl;
  else
    cout << "Nevozmozhno" << endl;
}
1
1 / 1 / 0
Регистрация: 20.11.2014
Сообщений: 8
24.11.2014, 16:56  [ТС]
Amandosov, вот что я просил)) Можете проверить и сказать где ошибка?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
int prov(int x)
{
    int i;
    if (x==1)
    {return 1;}
    else
     {
      if (x==2)
       return 1;
       else
        {
      for(i=2;i<x;i++)
       {
       if (x%i==0)
       return 0;
       }
       return 1;
     }
}
}
void main (void)
 {
 int a,i;
 printf("a=",a);
 scanf("%lf",&a);
 if (a>2)
  {
   for (a=2;i<a;i++)
    {
     if(a%i==0)
      {
       if (prov(i))
        {
         if (prov(a/i))
          printf("M");
         else
          printf("N");
         }
       else
        printf("N");
      }
     }
     printf("takih net");
   }
getch();
}
0
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 26
22.01.2015, 18:30
TheCalligrapher, а как сделать, что бы вместо произведения находило сумму?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.01.2015, 18:30
Помогаю со студенческими работами здесь

Представить n в виде произведения простых чисел
Нужно найти каждое значение p^a, если дано n. Помогите, пожалуйста.

Можно ли заданное натуральное число М представить в виде суммы квадратов двух натуральных чисел?
Можно ли заданное натуральное число М представить в виде суммы квадратов двух натуральных чисел? Написать программу решения этой задачи.

Определить, можно ли натуральное число N представить в виде произведения двух простых чисел
Всегда выводи одинаковые ответы. можно натуральное число N представить в виде произведения двух простых чисел program Prostye_chisla; ...

Определить, можно ли представить натуральное число М в виде произведения двух простых сомножителей
Составьте программу,определяющую,можно ли представить данное число М в виде произведения двух простых сомножителей. (Pascal ABC)

Можно ли заданное натуральное число представить в виде произведения трех простых чисел
Составить программу для проверки, можно ли заданное натуральное число N представить в виде произведения трех простых чисел.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru