1. 程式人生 > >Number Theory Problem(The 2016 ACM-ICPC Asia China-Final Contest 找規律)

Number Theory Problem(The 2016 ACM-ICPC Asia China-Final Contest 找規律)

hide ever wan ace test spl res con ani

題目:

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是成三倍的關系的。

技術分享圖片
#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; }
View Code

Number Theory Problem(The 2016 ACM-ICPC Asia China-Final Contest 找規律)