一道数学题。
代码里的n是代表x+2x+4x等等的和,因为k>1,所以从2开始;
n的和把x提出来,就是x*(1+2+4+…);
#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int count,x;
cin>>count;
for(int i=1;i<=count;i++){
cin>>x;
int n=3,k=2;
while(x%n!=0){
n+=pow(2,k);
k++;
}
cout<<x/n<<endl;
}
return 0;
}