Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
BRISK
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 14
#1

Разложение числа на множители - C++

23.06.2013, 22:04. Просмотров 710. Ответов 6
Метки нет (Все метки)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var
   s1,s2,n: longint;
   f: integer;
begin
     write('vvedite natural chislo ');
     readln(n);
     f:=0;
     s1:=1;
     repeat
        s2:=s1;
        Repeat
         if s1*s1+s2*s2=n then
            begin
                writeln(s1,'*',s1,'+',s2,'*',s2,'=',n);
                f:=f+1;
            end;
         s2:=s2+1;
       Until s2>n-1;
       s1:=s1+1;
     until s1>n div 2;
     if f=0 then writeln ('razlozhit nelzja');
     readln;
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2013, 22:04     Разложение числа на множители
Посмотрите здесь:

Разложение натурального числа на простые множители - C++
Выведите разложение натурального числа n > 1 на простые множители. Простые множители должны быть упорядочены по возрастанию и разделены...

Разложение на простые множители заданного натурального числа - C++
Составить программу , печатающую разложение на простые мн0жители заданн0го натУральн0го числа n > 0 (другими словами требуется печатать...

Разложение числа на простые множители (упрощенная). Зацикливание? - C++
Добрый вечер. Написал небольшой код для разложения небольших чисел на простые цифры. По умолчанию число, которое подается на ввод, делится...

Описать функцию, находящую разложение заданного натурального числа на простые множители - C++
Помогите написать программу, пожалуйста Описать функцию factors(a, n, F), находящую разложение натурального числа a на простые множители....

Разложение на простые множители* - C++
Привет всем, помогите решить, если можно с комментариями что и как, буду очень благодарен, а то у нас курс как-то слишком быстро вперед...

Разложение в простые множители - C++
Дано натуральное число n. Требуется найти его разложение на простые множители. Формат выходных данных Требуется вывести строго...

Разложение на простые множители без рекурсии - C++
Задача такая : Надо написать две функции get_all_divisorts и get_lowest_divisor. Функция main должна вызывать get_all_divisorts ,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tsin
709 / 454 / 129
Регистрация: 30.12.2012
Сообщений: 1,235
Записей в блоге: 2
Завершенные тесты: 3
23.06.2013, 22:14     Разложение числа на множители #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
@BRISK, писал "на коленке", но вроде правильно)

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
#include <iostream>
 
int s1,s2,n, f;
 
using namespace std;
 
void main()
{
    cout << "vvedite natural chislo ";
    cin >> n;
 
    f = 0;
    s1 = 1;
    do
    {
        s2 = s1;
        do
        {
             if (s1*s1 + s2*s2 == n)
             { 
                 cout << s1 << "*" << s1 << "+" << s2 << "*" << s2 << "=" << n;
                 f++;
              }
              s2++;
         } while(s2 > n-1);
         s1++;
     } while(s1 > n % 2); 
}
BRISK
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 14
23.06.2013, 22:31  [ТС]     Разложение числа на множители #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
var
   s1,s2,n: longint;
   f: integer;
begin
     write('vvedite natural chislo ');
     readln(n);
     f:=0;
     s1:=1;
     while s1<= n div 2 do
         begin
         s2:=s1;
         while s2<= n-1 do
             begin
             if s1*s1+s2*s2=n then
                begin
                writeln(s1,'*',s1,'+',s2,'*',s2,'=',n);
                f:=f+1;
                end;
             s2:=s2+1;
             end;
        s1:=s1+1;
        end;
     if f=0 then writeln ('razlozhit nelzja');
     readln;
end.
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 524
23.06.2013, 22:55     Разложение числа на множители #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main() {
    int s1,s2,n,f=0;
    std::cin>>n;
    s1=1;
    while(s1<=n/2) {
        s2=s1;
        while(s2<=n-1) {
            if(s1*s1+s2*s2==n) {
                std::cout<<s1<<'*'<<s1<<'+'<<s2<<'*'<<s2<<'='<<n<<std::endl;
                f++;
            }
            s2++;
        }
        s1++;
    }
    if(f==0)std::cout<<"razlozhit nelza"<<std::endl;
    return 0;
}
Tsin
709 / 454 / 129
Регистрация: 30.12.2012
Сообщений: 1,235
Записей в блоге: 2
Завершенные тесты: 3
23.06.2013, 23:19     Разложение числа на множители #5
@BRISK, в 28 строке у меня ошибка!
C++
1
while(s1 > n % 2);
вместо знака "%" надо "/" =)

Добавлено через 3 минуты
@Belfegor, кстати, есть большая разница между do while и просто while =)
Belfegor
Ghost
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 524
23.06.2013, 23:30     Разложение числа на множители #6
Цитата Сообщение от Tsin Посмотреть сообщение
кстати, есть большая разница между do while и просто while =)
уж я то знаю мой код к коду BRISK
Tsin
23.06.2013, 23:31     Разложение числа на множители
  #7

Не по теме:

@Belfegor, прости! Не доглядел)

Yandex
Объявления
23.06.2013, 23:31     Разложение числа на множители
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru