数学--数论--HDU - 6124 Euler theorem (打表找规律)

2020-11-05 21:17:44 浏览数 (1)

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 这个题比较水,用了map还是不如线性递推快,但是线性递推就超时了,于是打表找规律,然后发现规律如下。

于是可写出代码:

代码语言:javascript复制
#include <bits/stdc  .h>
using namespace std;
typedef long long ll;
const ll mod = 1e9   7;
int main()
{
    int t,n;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        if(n&1)
            printf("%dn",n/2 2);
        else
            printf("%dn",n/2 1);
    }
    return 0;
}

0 人点赞