有一個長度為2n的序列,編號為1,2,,…,n,n+1,…,2n-1,2n.經過一次變換后這個序列會變成n+1,1,n+2,2,n+3,3,n+4,4,…,2n,n.如果告訴你n,你能求出這個序列最少經過幾次變換后才能變成原來的序列,若這個序列不是循環序列,既不能變成原來的序列那么輸出-1.
多組測試數據.每組數據的第一行包含一個正整數n(1<= n<=10000).
對于每組測試數據輸出最少需要經過幾次變換或者-1.
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main(){ int n,m,count1; while(~scanf("%d",&n)) { m=2%(2*n+1); count1=1; while(m!=1) { m=(m*2)%(2*n+1); count1++; } PRintf("%d/n",count1); } return 0;}
新聞熱點
疑難解答