// TEST11.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include <cmath> using namespace std; bool flag[10]={0}; int cnt=0; bool isJustCase(int n) { while(n>=100) { int left=n,leftCnt=1; while(left>=10) { left/=10; leftCnt*=10; } n=n%leftCnt; n/=10; int sep=(int)(sqrt((double)n)+0.5); if(sep*sep!=n) { return false; } } return true; } void getCases(int cur,int n,int c) { if(cur==c) { if(isJustCase((n))) { cout<<n<<endl; } return; } for(int i=1;i<10;++i) { if(!flag[i]) { flag[i]=true; getCases(cur+1,n*10+i,c); flag[i]=false; } } } int main() { for(int i=3;i<10;++i) { getCases(0,0,i); } return 0; }