第三周训练总结(二)

时间:2023-01-26 22:18:48

     这周只参加了今天下午的比赛,感觉今天下午状态不好,精神集中不起来,思维也跟不上,到了后面一个多小时大家都有点散漫。

     今天的比赛出了第十一题,

 
题意:给出一个质数,判断该质数是否为两立方数之差
首先x^3-y^3为一个质数,则x=y+1,化简,得3*y(y+1)+1。所以一个质数n要是两立方数之差,则n-1是3的倍数,且n-1是两相邻数之积。
  1. #include<iostream>  
  2. #include<string>  
  3. #include<cstring>  
  4. #include<stdio.h>  
  5. #include<vector>  
  6. #include <algorithm>  
  7. #include<math.h>  
  8. using namespace std;  
  9. int main()  
  10. {  
  11.     int i,T;  
  12.     scanf("%d",&T);  
  13.     while(T--)  
  14.     {  
  15.         double n;  
  16.         scanf("%lf",&n);  
  17.         if((long long int )(n-1)%3==0)  
  18.         {  
  19.             n=(n-1)/3;  
  20.             long long int j = sqrt(n);  
  21.             if(j*(j+1) == (long long int )n)  
  22.                 printf("YES\n");  
  23.             else  
  24.                 printf("NO\n");  
  25.         }  
  26.         else  
  27.         {  
  28.             printf("NO\n");  
  29.         }  
  30.     }  
  31.     return 0;  
  32.   
  33. }  
相对于算法性很强的题,我还是更喜欢数学性强一点的题目,可能是受专业的影响。
感觉第一题很别扭,我的重点主要放在了求圆的方程上,但是一直超时。后来看到大家都是用JAVA提交的,队友又用了JAVA写,精度出了问题。出来题解后再看看错误出在哪了。
这周因为一些事情影响了心态,下周希望好好调整,继续加油。