Для решения указанной задачи можно воспользоваться следующим алгоритмом. Получаем квадрат заданного числа. Затем находим остаток от деления его на 10 (это будет последняя цифра числа), а от самого числа "отбрасываем" последнюю цифру. Если эта цифра равна 3, то меняем значение переменной-признака pr. Процесс повторяется до тех пор, пока не будут просмотрены все цифры числа (пока число не станет равным нулю). После этого проверяется значение переменной-признака.

   #include<iostream.h>
   main ()
   {
      int i,n,m,a,pr=0;
      cout << "Задайте натуральное число: ";
      cin >> n;
      m = n*n; //Находим квадрат заданного числа.
      while  (m>=1)
	{
		a = m%10; //Последняя цифра числа.
		m /=10;   //Удалили последнюю цифру из числа.

		if  (a==3) pr=1; //Цифра 3 обнаружена.
        }
     if  (pr)
	cout << "Цифра 3 в квадрате числа " << n << " есть";
      else
        cout << "Цифры 3 в квадрате числа " << n << " нет";
   }
Текст этой программы можно взять здесь.