Number Theory Problem(The 2016 ACM-ICPC Asia China-Final Contest 找规律)
题目:
Mr. Panda is one of the top specialists on number theory all over the world. Now Mr. Panda is investigating the property of the powers of 2. Since 7 is the lucky number of Mr. Panda, he is always interested in the number that is a multiple of 7. However, we know that there is no power of 2 that is a multiple of 7, but a power of 2 subtracted by one can be a multiple of 7. Mr. Panda wants to know how many positive integers less than 2n in the form of 2k-1 (k is a positive integer) that is divisible by 7. N is a positive interger given by Mr Panda.
Input:
The first line of the input gives the number of test cases, T. T test cases follow. Each test case contains only one positive interger N.
output:
For each test case, output one line containing “Case #x: y”, where x is the test case number (starting from 1) and y is the answer.
题意:给出一个数N,找有多少个数,这些数的大小小于2N,且这些数符合2k-1的形式。
思路:把100以内的这种数和对应的N输出出来,会发现个数与N是成三倍的关系的。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <queue> #include <map> #include <set> #include <vector> #include <iomanip> using namespace std; vector<long double> v; int read() { int res = 0; char op = getchar(); if(op>='0' && op<='9') { res = op-'0'; op = getchar(); } while(op>='0'&&op<='9') { res = res*10+op-'0'; op = getchar(); } return res; } int main() { int T,n,cnt=1; T = read(); while(T--) { int n; n = read(); printf("Case #%d: %d\n",cnt++,n/3); } return 0; }