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

Дано натуральное число n. -представить его как сумму квадратов - C++

Восстановить пароль Регистрация
 
kostolom 2
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 6
11.06.2012, 10:52     Дано натуральное число n. -представить его как сумму квадратов #1
Дано натуральное число n. Если возможно, то представить его как сумму квадратов двух натуральных чисел.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2012, 10:52     Дано натуральное число n. -представить его как сумму квадратов
Посмотрите здесь:

C++ Дано натуральное число n. Найти все его делители и разложить его на простые числа.
C++ Дано натуральное число n. Можно ли представить его в виде суммы трех квадратов натуральных чисел?
C++ Дано натуральное число n. Вычислить сумму его цифр
Можно ли заданное натуральное число М представить в виде суммы квадратов двух натуральных чисел? C++
Натуральное число N представить в виде его стека C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yleart
 Аватар для yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
11.06.2012, 11:27     Дано натуральное число n. -представить его как сумму квадратов #2
Вот:
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
#include<iostream>
#include<cmath>
int main()
{
    int n;
    std::cout<<"Enter n: ";
    std::cin>>n;
    bool flag=true;
    for (int i=0;i<n;++i)
    for(int j=0;j<n;++j)
    {
        if (n==j*j+i*i)
        {
        std::cout<<i<<" "<<j<<std::endl;
        flag=false;
        break;
        }
        if (!flag)
        break;
    }
    if(flag)
    {
        std::cout<<"Error";
    }
}
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
11.06.2012, 11:36     Дано натуральное число n. -представить его как сумму квадратов #3
yleart, асимптотически неоптимально, можно перебирать за http://www.cyberforum.ru/cgi-bin/latex.cgi?O(n) с отсечением.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
int main()
{
    int n, a, b;
 
    cin >> n;
 
    for (a = 1; a * a <= n; a++)
        for (b = 1; a * a + b * b <= n; b++)
            if (a * a + b * b == n)
            {
                cout << a << ' ' << b << endl;
                return 0;
            }
            
    cout << "Impossible\n";
 
    return 0;
}
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
11.06.2012, 12:02     Дано натуральное число n. -представить его как сумму квадратов #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <math.h>
#include <stdio.h>
 
int main() {
    unsigned i, n;
    float r;
    scanf("%u", &n);
    for (i = 1; i * i < n; i++) {
        r = sqrt(n - i * i);
        if (r == (int)r) {
            printf(" = %d^2 + %d^2\n", i, (int)r);
            return 0;
        }
    }
    puts("unable");
    return 1;
}
Yandex
Объявления
11.06.2012, 12:02     Дано натуральное число n. -представить его как сумму квадратов
Ответ Создать тему
Опции темы

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