các anh cho em hỏi em có làm bài code với đề như sau: Xây dựng lớp các dãy số nguyên trong đó có phương thức tìm các phần tử trong dãy số Amstrong (số Amstrong là số nguyên dương có k chữ số và tổng các lũy thừa bậc k của các chữ số của nó bằng chính số đó).
Em đã viết code và thuật toán nhưng tại sao vẫn chưa cho ra kết quả khi chạy được. Em lập trình còn kém mong các anh giúp đỡ
Mã:
#include <iostream.h>
#include<math.h>
#include<conio.h>

class songuyen
 {
  private:
          int n,a[100];
  public:
         void amstrong(int b);
         void ktamstrong();
         void nhap();
 };

void songuyen::nhap()
 {
     cout<<"Nhap vao so luong phan tu:";
     cin>>n;
     for(int i=0;i<n;i++)
      {
       cout<<"
a["<<i<<"]=";
       cin>>a[i];
      }
 }

void songuyen::ktamstrong()
 {
  cout<<"So amstrong trong day:
";
  for(int i=0;i<n;i++)
   amstrong(a[i]);
   
 }

void songuyen::amstrong(int b)
 {
 	int k,j,c=b;
 	k=(int)log10(b)+1;
  float m=0;
  for(int j=0;j<k;j++)
   {
    j=b%10;
    b/=10;
    m+=pow(j,k);
   }
  if((int)m==c) cout<<c<<endl;
 }  
	
 	main()
	{
		int b;
		songuyen s;
		s.nhap();
		s.amstrong(b);
		s.ktamstrong();
		getch();
	}