Submission #1112534
Source Code Expand
#include <iostream> int pow_mod(int x, int n, int mod) { int ans = 1; while(n != 0) { if(n & 1) ans = (ans * x) % mod; x = (x*x) % mod; n >>= 1; } return ans; } int count[10010]; int main() { int p, n; std::cin >> p >> n; for(int i = 0; i < p; ++i) { ++count[pow_mod(i, n, p)]; } int zero = 0; int cnt = 0; for(int i = 0; i < p; ++i) { zero += count[0] * count[i] * count[(p - i) % p]; if(i > 0 && count[i] > 0) ++cnt; } int one = 0; for(int i = 0; i < p; ++i) { // x one += count[1] * count[i] * count[(p + 1 - i) % p]; } std::cout << zero + one * cnt << std::endl; }
Submission Info
Submission Time | |
---|---|
Task | fermat - フェルマー方程式 (Fermat) |
User | tsuzu |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 810 Byte |
Status | AC |
Exec Time | 2 ms |
Memory | 256 KB |
Judge Result
Set Name | Set01 | Set02 | Set03 | Set04 | Set05 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | ||||||||||
Status |
|
|
|
|
|
Set Name | Test Cases |
---|---|
Set01 | 01 |
Set02 | 02 |
Set03 | 03 |
Set04 | 04 |
Set05 | 05 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01 | AC | 1 ms | 256 KB |
02 | AC | 1 ms | 256 KB |
03 | AC | 1 ms | 256 KB |
04 | AC | 2 ms | 256 KB |
05 | AC | 2 ms | 256 KB |