HDU 6124 Euler theorem
Problem Description
HazelFan is given two positive integers a,b, and he wants to calculate amodb. But now he forgets the value of b and only remember the value of a, please tell him the number of different possible results.
Input
The first line contains a positive integer T(1≤T≤5), denoting the number of test cases.
For each test case:
A single line contains a positive integer a(1≤a≤109).
Output
For each test case:
A single line contains a nonnegative integer, denoting the answer.
Sample Input
2
1
3
Sample Output
2
3
题目大意:
输入一个数n,有n组测试数据,输入A,求A%B有几种可能,B可以为任意值。
这是一个规律题,可以先用暴力求出正确答案,再观察规律。这道题的规律是
d=(b-1)/2+2或d=(b+1)/2+1。d为结果,b为输入值
c++
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
long long int a,b,c,d,e,f;
cin>>a;
while(a--)
{
cin>>b;
d=(b-1)/2+2;
cout<<d<<endl;
}
return 0;
}