Note that this is 0-9, don’t think of it as 1-10
#include<stdio.h>
#include<math.h>
#include<string.h>
int vis[11]={
0};
int n[11]={
0};
int bo(int a,int b,int t){
memset(n,0,sizeof(n));
memset(vis,0,sizeof(vis));
int k=0,i;
while(a!=0){
n[k]=a%10;
a=a/10;
k++;
}
while(b!=0){
n[k]=b%10;
b=b/10;
k++;
}
for(i=0;i<10;i++){
vis[n[i]]=1;
}
for(i=0;i<10;i++){
if(vis[i]==0)
return 0;
}
return 1;
}
int main(){
int i,a,b;
for(i=10;i<100;i++){
a=pow(i,2);
b=pow(i,3);
if(bo(a,b,i)==1){
printf("%d\n",i);
return 0;
}
}
}