برنامه ای بنویسید که با دریافت دو عدد به عنوان شماره خانه مبدا و شماره خانه مقصد در
ساختار زیر، حداقل تعداد گام الزم برای حرکت از مبدا و رسیدن به مقصد را در خروجی نمایش
دهد.(حرکت در این ساختار در هر گام شامل جابجایی به یکی از دایرههای مجاور است. دو دایره
مجاور هستند اگر در یک نقطه مشترک باشند.)
![توضیح تصویر](http://uupload.ir/files/po1_1.jpg)
مثال :
input:
5
17
output:
3
همانطور که می دانید حاصل جمع تمام مقسوم علیه های عدد دلخواه n به راحتی و به روش زیر قابل محاسبه است:
مثلا مجموع مقسوم علیه های عدد 12
![توضیح تصویر](http://uupload.ir/files/0wnr_2.jpg)
در این سؤال از شما خواسته میشود که برای عدد n فرمول زیر را محاسبه کنید.
![توضیح تصویر](http://uupload.ir/files/w4kz_3.jpg)
مثال
input:
5
output:
21
## زیررشته مشترک:
برنامهای بنویسید که یک عدد صحیح n از کاربر بگیرد و پس از آن n رشته را از ورودی بگیرد. خروجی برنامه بزرگترین رشتهای مانند s خواهد بود که هرکدام از رشتهها s و یا وارون آن را به عنوان زیررشته داشته باشند. اگر زیر رشتهی مشترکی وجود نداشت، چیزی چاپ نشود.
## تعریف زیررشته:
کاراکترهای «متوالی» از رشته که شروع و پایان آن هرجا از رشته میتواند باشد و ترتیب کاراکترها عیناً همان ترتیب در رشته اصلی است. مثلاً زیررشتههای `ABC` به این صورت هستند:
`A, B, C, AB, BC, ABC`
## خروجی
زیررشتهای که در خروجی چاپ میشود، باید به فرمی باشد که در رشته اول قرار دارد، مثلاً در مثال باید در خروجی `CDEF` چاپ شود، نه `FEDC`.
## مثال:
ورودی نمونه
```
3
ABCDEF
FEDCAB
GHCDEFJK
```
خروجی نمونه
```
CDEF
```