Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2010, 18:43   #1
BESTолочь
Новичок
Джуниор
 
Регистрация: 25.12.2010
Сообщений: 4
По умолчанию Как в C++ разложить числа на простые множители?

Как в C++ разложить числа на простые множители?.Нужно составить программу, которая выдаёт разложение данного числа N на простые множители. Например 128=2*2*2*2*2*2*2. Заранее спасибо.
BESTолочь вне форума Ответить с цитированием
Старый 25.12.2010, 19:11   #2
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от BESTолочь Посмотреть сообщение
Как в C++ разложить числа на простые множители?.Нужно составить программу, которая выдаёт разложение данного числа N на простые множители. Например 128=2*2*2*2*2*2*2. Заранее спасибо.
Так же как и в других языках программирования , просто взять и разложить , как бы ты сделал это в математике , методом проверки .

Начать с 2 ( простого числа) и делить , пока длиться число , уменьшая его . Если не делить на 2 , то перейти к следующему простому числу , то есть 3 и т.д. , пока в конце не останется от числа 1 .
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 25.12.2010, 19:42   #3
BESTолочь
Новичок
Джуниор
 
Регистрация: 25.12.2010
Сообщений: 4
По умолчанию

Код:
#include <stdio.h>
   main()
{int t,i=2;
printf("vvedite chislo\n");
       scanf("%d",&t);
       printf("%d=1",t);
       while(t%2==0)
{
printf("*%d",2);
t=t/2;
} 
while(i<=t)
{
if(t%i==0)
{
printf("*%d",i);
t=t/i;
}
else
i=i+1;
}
}
тогда вопрос задам по другому,как убрать единицу в начале вывода множителей на экран

Последний раз редактировалось Stilet; 25.12.2010 в 20:04.
BESTолочь вне форума Ответить с цитированием
Старый 25.12.2010, 20:12   #4
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от BESTолочь Посмотреть сообщение
Код:
#include <stdio.h>
   main()
{int t,i=2;
printf("vvedite chislo\n");
       scanf("%d",&t);
       printf("%d=1",t);
       while(t%2==0)
{
printf("*%d",2);
t=t/2;
} 
while(i<=t)
{
if(t%i==0)
{
printf("*%d",i);
t=t/i;
}
else
i=i+1;
}
}
тогда вопрос задам по другому,как убрать единицу в начале вывода множителей на экран
А кто тебе написал программу ???
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 25.12.2010, 20:22   #5
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

Код:
int n;
cin>>n
int q[100]={1};
int j=0;
for (i=2;i<n;i++){
   if ((n%i)==0){//если делится нацело
      n=n/i;
      q[j]=i;
      i=2;
      j++;
   }
}
j=0;

while(q[j]!=1){
   cout.width(4);
   cout<<q[j];
   j++;
}
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 25.12.2010, 20:25   #6
BESTолочь
Новичок
Джуниор
 
Регистрация: 25.12.2010
Сообщений: 4
По умолчанию

один умный человек,а что все совсем плохо?
P.S.простите за тупые вопросы,просто в этом я полный ноль,спросить больше не у кого,пошла на крайние меры.
BESTолочь вне форума Ответить с цитированием
Старый 25.12.2010, 20:26   #7
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Код:
#include <stdio.h>
 main()
{
	int t,i=2;
	printf("vvedite chislo\n");
	scanf("%d",&t);
	
	printf("%d = ",t);
	
	while(i<=t)
	{
		if(t%i==0)
		{
			printf("%d",i);
			t=t/i;
			if(t>1)
				printf("*");
		}
		else
			i=i+1;		
	}
}
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---

Последний раз редактировалось andrewpalkin; 25.12.2010 в 20:34.
andrewpalkin вне форума Ответить с цитированием
Старый 25.12.2010, 20:28   #8
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от BESTолочь Посмотреть сообщение
один умный человек,а что все совсем плохо?
P.S.простите за тупые вопросы,просто в этом я полный ноль,спросить больше не у кого,пошла на крайние меры.
Смотри код твоего умного человека , я его поправил . В сообщение выше
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 25.12.2010, 20:32   #9
BESTолочь
Новичок
Джуниор
 
Регистрация: 25.12.2010
Сообщений: 4
По умолчанию

Спасибо большое!
BESTолочь вне форума Ответить с цитированием
Старый 16.04.2018, 09:51   #10
daniil_tgpu
Новичок
Джуниор
 
Регистрация: 16.04.2018
Сообщений: 1
По умолчанию

Ребята, зачем while? Если легче сделать через for.
void schet( int x){
int i;
for(i=2;i<x;i++){
if(x%i==0){
cout<<"*"<<i;
x=x/i;
i--;
}
}
cout<<"*"<<x<<endl;
}
daniil_tgpu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разложение на простые множители bloodflood Общие вопросы C/C++ 20 15.12.2010 13:57
Разложение натурального числа на простые множители (Delphi) giga_person Помощь студентам 3 17.03.2010 16:24
разложить число на простые множители и вывести результат pakusya Паскаль, Turbo Pascal, PascalABC.NET 6 15.11.2008 03:07
Разложение числа на простые множители artem_MG Паскаль, Turbo Pascal, PascalABC.NET 3 24.10.2008 19:28