01/10/2018, 12:07

Bài tập vòng for trong c++

các anh chị bạn giúp mình với,có bài toán như hình,nhưng cho mình hỏi là sao để nó hiện có 2 số 1729 và 4104 thôi ạ.mình làm nó ra nhiều số quá,vậy điều kiện là gì ạ? mình học c++
code:


#include
#include
#include
using namespace std;
int main()

{
    int n;
    cin>>n;
    for(int a=1; a<=25; a++)
    {
        for(int b=1; b<=25; b++)
        {
            for(int c=1; c<=25; c++)
            {
                for(int d=1; d<=25; d++)
                {
                    if(pow(a,3)+pow(b,3)==pow(c,3)+pow(d,3)&&a!=b&&a!=c&&a!=d&&b!=c&&b!=c&&d!=b&&d!=c&&pow(a,3)+pow(b,3)<n&&a+b!=c+d)
                    {
                        cout<<pow(a,3)+pow(b,3)<<endl;
                    }
                }
            }
        }
    }
}
HK boy viết 14:12 ngày 01/10/2018

Để a < b, c < d để loại bớt các trường hợp thừa.

rogp10 viết 14:08 ngày 01/10/2018

Lần sau thớt viết hẳn đề bài ra, hình chỉ là phụ thôi (cứ gọi là lag tung chảo ấy).

3 for thì đừng add hai cái đk ở trên mà sửa lại for ấy. d thì tính được từ a, b, c rồi.

Lê Quốc Khánh viết 14:23 ngày 01/10/2018

ko đc a ơi

HK boy viết 14:21 ngày 01/10/2018

Code đâu rồi hả bạn?

Lê Quốc Khánh viết 14:14 ngày 01/10/2018

đề đây bạn,nhưng mình chưa hiểu ban nói lắm
S. Ramanujan là một nhà toán học người Ấn đã trở nên nổi tiếng nhờ trực giác của mình về con số. Khi một nhà toán học người Anh G. H. Hardy tới thăm anh ta trong bệnh viện một ngày, Hardy nhận xét rằng số xe taxi của anh ta là 1729, một con số khá ngu si đần độn. Ramanujan trả lời, “Không, Hardy! Không, Hardy! Đó là một con số rất thú vị, đó là con số nhỏ nhất được biểu diễn như tổng lập phương theo hai cách khác nhau”
Xác minh tuyên bố này bằng cách viết một chương trình Ramanujan.cpp lấy đối số là một số nguyên n và in tất cả các số nguyên nhỏ hơn hoặc bằng n có thể được biểu diễn như là tổng lập phương theo 2 cách khác nhau.
Hint: tìm các số nguyên dương khác biệt a, b, c, và d sao cho a ^ 3 + b ^ 3 = c ^ 3 + d ^ 3. Sử dụng bốn vòng for lồng nhau.
Ví dụ, với n = 10000, ta có:
1729 = 1^3 + 12^3 = 9^3 + 10^3
4104 = 2^3 + 16^3 = 9^3 + 15^3
Suy ra, output: 1729 4104

Bài liên quan
0