#include <iostream>
#define MAX 10000 // Buradan üst sınırı girebilirsiniz
using namespace std;
int main(){
/*Değişkenler ve sabitler*/
unsigned long int i;
int a,b,c,d,e;
int toplam=0;
/*TANIM*/
cout << "Basamaklarindaki tum rakamlari, herhangi bir rakamin karesi olan ve kendisi de herhangi bir sayinin karesi olan cok basamakli sayilara gizem sayisi denir." << endl << endl;
/*Algoritma*/
for(i=10; i<=MAX ; i++){
for(int j=1 ; j<i ; j++){
/***********************Karar aşaması*************************************/
/* iki basamaklı gizem sayısı arıyoruz */
if(i<100){
a=i/10;
b=i%10;
for(int k=1; k<10 ; k++){
for(int r=1 ; r<10 ; r++){
if((a==k*k )&&(i==j*j)&&(b==r*r)){
cout << i << " bir gizem sayisidir. " << endl;
toplam++;
}
}
}
}
/* Üç basamaklı gizem sayısı arıyoruz */
if(i >=100 && i <1000) {
a=i/100;
b=(i%100)/10;
c=i%10;
for(int m=1 ; m<10 ; m++){
for(int h=1; h<10 ; h++){
for(int t=1 ; t<10 ; t++)
if(a==m*m && b==h*h && c==t*t && i==j*j){
cout << i << " bir gizem sayisidir. " << endl;
toplam++;
}
}
}
}
/*Dört basamaklı gizem sayısı arıyoruz */
if(i >=1000 && i < 10000 ){
a=i/1000;
b=(i/100)%10;
c=(i/10)%10;
d=i%10;
for(int m=1 ; m<10 ; m++){
for(int h=1; h<10 ; h++){
for(int t=1 ; t<10 ; t++)
for(int z=1 ; z<10 ; z++){
if(a==m*m && b==h*h && c==t*t && d==z*z && i==j*j){
cout << i << " bir gizem sayisidir. " << endl;
toplam++;
}
}
}
}
}
*/
/****************Karar aşaması bitti***************************************/
}
}
cout << endl;
cout << i << " e kadar toplam " << toplam << " tane gizem sayisi vardir. " << endl;
cout << "******************************************************************" <<endl;
cout << "Bu program Mehmet Cakir tarafindan yapilmistir. " << endl;
cin >> a ;
return 0;
}
alıntıdır
![[Resim: 114ld.jpg]](http://b1112.hizliresim.com/s/c/114ld.jpg)