Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536K
Problem Description
Alice, a student of grade 6, is thinking about an Olympian Math problem, but she feels so
despair that she cries. And her classmate, Bob, has no idea about the problem. Thus he wants
you to help him. The problem is:
We denote k! :
k!=1 2(k −1) k
We denote S :
S =11!+2 2!++ (n −1)(n −1)!
Then S module n is ____________
You are given an integer n. You have to calculate S modulo n.
Input
The first line contains an integer T(T≤1000), denoting the number of test cases. For each
test case, there is a line which has an integer n.
It is guaranteed that 2≤n≤1018
.
Output
For each test case, print an integer S modulo n.
Sample Input
2
2
3
Sample Output
1
2
Hint
The first test is:
S =11!=1
, and 1 modulo 2 is 1.
The second test is:
S =11!+2 2!= 5
, and 5 modulo 3 is 2.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
找规律
#include <iostream>
#include <iterator>
#include <algorithm>
#include <stdio.h>
using namespace std;
typedef unsigned long long ull;
int main()
{
int k;
scanf("%d", &k);
while(k--)
{
ull t;
ull result = 0;
scanf("%llu", &t);
printf("%llu\n", t-1);
}
return 0;
}
本文介绍了一道数学竞赛题目,要求计算特定数列S模n的值,并给出了解题思路及C++实现代码。输入为整数n,范围在2到10^18之间。
1237

被折叠的 条评论
为什么被折叠?



