C, 252 220 225225 111 bytes
#include<stdio.h>
#include<string.h>
int main(){char a[128]; int r=0;scanf("%s",a);for (int i = 0;i < strlen(a);i++){r += ((int)a[i]);for (int j = 0; j < strlen(a); j++) r *= r;}if (r == (int) a) printf("1\n");else printf("0\n");}
int f(char *a){for(int i=0;i<strlen(a);i++){r+=((int)a[i]);for(int j=0;j<strlen(a);j++)r*=r;}return r==(int)a;}
Returns 0 if false
and 1 if true
. The maximum number of digits for the inputted number is 128. Thanks to @DrMcMoylex for saving 27many bytes and explaining stuff.