Số Armstrong
Số Armstrong: một số tự nhiên có n chữ số được gọi là số Armstrong (còn gọi là narcisstic numbers, plus perfect numbers hoặc perfect digital invariant numbers) nếu tổng các lũy thừa bậc n của tổng các chữ số của nó bằng chính nó.
Ví dụ: 153 là số Armstrong vì 153=13+53+33
Ví dụ: 153 là số Armstrong vì 153=13+53+33
Bài tập: Viết 1 hàm isArmstrong(n) để kiểm tra 1 số nguyên dương n có phải là số Armstrong hay không, sau đó liệt kê tất cả các số Armstrong có 3, 4 chữ số.
Hàm isArmstrong(n) trả về 1 nếu n là số Armstrong, ngược lại hàm trả về 0
#include <stdio.h> #include <conio.h> #include <math.h> int isArmstrong(int n) { int tong=0, dem=0, tam=n; //Xác định xem số nguyên n có bao nhiêu chữ số //và lưu vào biến dem do dem++; while (tam/=10); //Tính tổng lũy thừa của các chữ số tam=n; do tong+=pow((tam%10),dem); while ((tong<=n) && (tam/=10)); if (tong==n) return 1; else return 0; } void main() { clrscr(); for (int i=100; i<=9999; i++) if (isArmstrong(i)) printf("%d ",i); getch(); }
Kết quả chạy chương trình
Advertisements
Comments (0)
Trackbacks (0)
Leave a comment
Trackback