我是靠谱客的博主 可爱毛巾,这篇文章主要介绍2018 ccpc 1004,现在分享给大家,希望可以做个参考。

题目:

题目大意:

给你a和n,让你找b和c,使得a,b,c,n 满足  a ^ n + b ^ n = c ^ n 这个等式。

思路:

还是一道数论的签到题,运用费马大定理和费马大定理奇偶数列定则来做。

费马大定理:https://baike.baidu.com/item/%E8%B4%B9%E9%A9%AC%E5%A4%A7%E5%AE%9A%E7%90%86/80363

费马大定理奇偶数列定则:https://blog.csdn.net/SM_545/article/details/79248470

代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include<algorithm> #include<iostream> #include<limits.h> #include<string.h> #include<stdlib.h> #include<stdio.h> #include<cstdlib> #include<cstring> #include<cassert> #include<string> #include<cstdio> #include<bitset> #include<vector> #include<cmath> #include<ctime> #include<stack> #include<queue> #include<deque> #include<list> #include<set> #define MAXN 1000001 #define mod 1000000007 typedef long long ll; using namespace std; ll n,a; int t; int main() { cin>>t; while (t--) { cin>>n>>a; if(n>2||n==0)//通过费马大定理可以得到当n大于2或者n等于0时,式子一定不成立 cout<<"-1 -1"<<endl; else { if(n==1)//将n等于1特殊讨论 cout<<'1'<<' '<<a+1<<endl; else { if(!(a%2)&&a>4)//运用费马大定理奇偶数列定则来求解勾股数 { int n=a/2; cout<<n*n-1<<' '<<n*n+1<<endl; } else if(a%2) { int n=(a-1)/2; cout<<2*n*n+2*n<<' '<<2*n*n+2*n+1<<endl; } } } } }


数论四大定理:

https://baike.baidu.com/item/%E6%95%B0%E8%AE%BA%E5%9B%9B%E5%A4%A7%E5%AE%9A%E7%90%86/4751986

 

最后

以上就是可爱毛巾最近收集整理的关于2018 ccpc 1004的全部内容,更多相关2018内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(96)

评论列表共有 0 条评论

立即
投稿
返回
顶部