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

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

Восстановить пароль Регистрация
 
BRISK
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 14
23.06.2013, 22:04     Разложение числа на множители #1
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.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tsin
 Аватар для Tsin
419 / 395 / 108
Регистрация: 30.12.2012
Сообщений: 1,086
Записей в блоге: 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
 Аватар для Belfegor
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
 Аватар для Tsin
419 / 395 / 108
Регистрация: 30.12.2012
Сообщений: 1,086
Записей в блоге: 2
Завершенные тесты: 3
23.06.2013, 23:19     Разложение числа на множители #5
@BRISK, в 28 строке у меня ошибка!
C++
1
while(s1 > n % 2);
вместо знака "%" надо "/" =)

Добавлено через 3 минуты
@Belfegor, кстати, есть большая разница между do while и просто while =)
Belfegor
Ghost
 Аватар для Belfegor
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     Разложение числа на множители
Ответ Создать тему
Опции темы

Текущее время: 11:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru