Làm sao để chương trinh đúng với số lớn

Chứng minh phỏng đoán đó sai bằng cách tìm các số nguyên dương a, b, c, de sao cho:

a^5+b^5+c^5+d^5=e^5

Viết chương trình nhận vào từ bàn phím tham số N và tìm kiếm vét cạn tất cả các lời giải với a, b, c, de nhỏ hơn hoặc bằng N. In các lời giải ra màn hình.
Chương trình em viết:

#include<stdio.h>

#include<math.h>


int main()
{
    int n,a,b,c,d,e;
    printf("nhap so : ");
    scanf("%d",&n);
    for( e=1; e<=n; e++)
     {
        for( d=1; d<e; d++)
        {
            for( c=1; c<d; c++)
            {
                for( b=1; b<c; b++)
                {
                     for( a=1; a<b; a++)
                     {



                    if(pow(a,5)  + pow(b,5) + pow(c,5)+pow(d,5)==pow(e,5))
                    {

                        printf("%d^5 + %d^5 + %d^5 + %d^5 = %d^5 ",a,b,c,d,e);

                    }
                   }
                }
            }
        }
    }
}

Em chạy chương trình thì ko được. Em thử thay mũ 5 bằng mũ 2 thì vẫn được vậy nghĩa là chương trình em viết nó ko đủ mạnh để giải bậc 5.
Anh(chị) có thể mở giúp em co đường sáng dc ko ạ:))))))

Tham khảo: https://en.wikipedia.org/wiki/C_data_types

Bạn có thể dùng kiểu unsigned long long thay cho int.

3 Likes

Vẫn ko dc ạ…

Số lớn quá thì vẫn không tính được. unsigned long long khoảng 18 tỷ tỷ (18 số 0) chỉ mũ 5 từ hàng ngàn (3 số 0) được thôi (3*5=15 < 18).
Chỗ scanf() cũng chỉnh lại nếu n cũng kiểu unsigned long long.

Nếu vẫn không được thì bạn nên nói chi tiết vấn đề ra.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?