小明暑假期間在某實驗室實習,主要工作就是協助實驗室整理大量的實驗數據。
實驗室累積了許多數據資料,但因設備及管理等問題,小明發現有些數據可能登記錯誤;
這些記錯的數字恰好為原數字的兩個位數被互換,
例如數字 被記錄成 或者數字 被記成 等等。
小明希望你寫出一個程式檢查哪些資料有可能被登記錯誤,具體來說他定義了一個關係函式 ,
若 將某兩個位數互換後與 相等,則 ;否則 。
舉例來說 ,
因為 的第一位數和第三位數互換時會變成 ;
但 ,因為交換任何兩個位數都無法變成相同的數字。
小明想要將 個相異的非負整數 運用關係函式 來加以分群。
開始時,每一個數字可以自成一群,
對於一個數字 和一個群 ,
如果 有一個成員 使得 ,
則將 所在的群與 合併,形成更大的群。
小明想知道這些數據可以分成幾群,群的個數越小越好,和最大的群有多少數字。請寫一個程式幫助小明完成此任務。