这周只参加了今天下午的比赛,感觉今天下午状态不好,精神集中不起来,思维也跟不上,到了后面一个多小时大家都有点散漫。
今天的比赛出了第十一题,
题意:给出一个质数,判断该质数是否为两立方数之差
首先x^3-y^3为一个质数,则x=y+1,化简,得3*y(y+1)+1。所以一个质数n要是两立方数之差,则n-1是3的倍数,且n-1是两相邻数之积。
- #include<iostream>
- #include<string>
- #include<cstring>
- #include<stdio.h>
- #include<vector>
- #include <algorithm>
- #include<math.h>
- using namespace std;
- int main()
- {
- int i,T;
- scanf("%d",&T);
- while(T--)
- {
- double n;
- scanf("%lf",&n);
- if((long long int )(n-1)%3==0)
- {
- n=(n-1)/3;
- long long int j = sqrt(n);
- if(j*(j+1) == (long long int )n)
- printf("YES\n");
- else
- printf("NO\n");
- }
- else
- {
- printf("NO\n");
- }
- }
- return 0;
- }
感觉第一题很别扭,我的重点主要放在了求圆的方程上,但是一直超时。后来看到大家都是用JAVA提交的,队友又用了JAVA写,精度出了问题。出来题解后再看看错误出在哪了。
这周因为一些事情影响了心态,下周希望好好调整,继续加油。