CF1343A Candies题解

一道数学题。
代码里的n是代表x+2x+4x等等的和,因为k>1,所以从2开始;
n的和把x提出来,就是x*(1+2+4+…);

#include
#include
#include
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;
} 

你可能感兴趣的:(CF1343A Candies题解)