Yêu cầu:
– Tìm số Amstrong là một số có đặc điểm sau: số đó gồm n chữ số, tổng các lũy thừa bậc n của các chữ số đó và số đó.
Ví dụ: 153 = 1^3 + 5^3 + 3^3. Hãy tìm các số Amstrong nhỏ hơn 1000.
Phân tích:
– Dùng vòng lặp để kiểm tra điều kiện của sô Amstrong.
Code:
/************************************************************
#include "stdio.h"
#include "conio.h"
#include "math.h"
void main()
{
int i, j, k;
for(i = 0; i <= 9; i++)
for(j = 0; j <= 9; j++)
for(k = 0; k <= 9; k++)
{
if(i == 0)
{
if(j == 0)
{
printf("\n %d^1 = %d", k, k);
}
else
{
if((10*j + k) == (pow((float)j, 2)+pow((float)k, 2)))
printf("\n %d^2 + %d^2 = %d", j, k, 10*j+k);
}
}
else
{
if((100*i + 10*j + k) == (pow((float)i, 3) + pow((float)j, 3) + pow((float)k, 3)))
printf("\n %d^3 + %d^3 + %d^3 = %d", i, j, k, 100*i + 10*j + k);
}
}
getch();
}
Kết quả:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
0^1 = 0 1^1 = 1 2^1 = 2 3^1 = 3 4^1 = 4 5^1 = 5 6^1 = 6 7^1 = 7 8^1 = 8 9^1 = 9 1^3 + 5^3 + 3^3 = 153 3^3 + 7^3 + 0^3 = 370 3^3 + 7^3 + 1^3 = 371 4^3 + 0^3 + 7^3 = 407 |
Leave a Reply