目录
大佬说
幻想与真实
预计分数:$100+0+0+0+0+0=100.$
实际分数:$0+0+0+0+0+0=0$
【XR-2】缘分
题目
思路
$gcd(a,b) * lcm(a,b)=a * b$
当 $gcd==1$ 时 $lcm$ 最大等于$a * b$,而想要$gcd==1$要满足的条件是$a⊥b$。
所以是求小于等于$n$的最大的两个不相等的质数(如果相等的话最后的答案就是小于等于$n$的最大的质数(将这个数称为$x$),这个数肯定小于$x * 2$。
所以思路应该正确,$qwq$。
Code
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<algorithm>
using namespace std;
int t;
int test[15]= {2,7,61};
unsigned long long temp[3];
inline int read(){
int x=0;
bool f=0;
char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=!f;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
return f?-x:x;
}//读入优化
inline void write(unsigned long long x){
if(x/10) write(x/10);
putchar(x%10+'0');
}//输出优化
inline long long qpow(int a,int b,int c) {//快速幂。不会的可以去做一下P1226
if(b==0) return 1%c;
long long ans=1,base=a;
while(b) {
if(b & 1) ans*=base;
ans%=c;
base*=base;
base%=c;
b>>=1;
}
return ans;
}
inline bool mb(int p) {//Miller-Rabin算法。
if(p==1) return 0;
if(p==2) return 1;
int t=p-1,k=0;
while(!(t&1)) {
k++;
t>>=1;
}
for(int i=0;i<=2;++i) {
if(p==test[i]) return 1;
long long a=qpow(test[i],t,p),nx=a;
for(int j=1;j<=k;++j) {
nx=(a*a)%p;
if(nx==1&&a!=1&&a!=p-1) return 0;
a=nx;
}
if(a!=1) return 0;
}
return 1;
}
int main(){
t=read();
int n;
while(t--){
n=read();
int sum=0;
for(int i=n;i>=1;--i){
if(mb(i)){
temp[++sum]=i;
if(sum==2) break;
}
}
if(temp[1]*temp[2]==0) printf("0");
write(temp[1]*temp[2]);
puts("");
}
return 0;
}
现实永远是残酷的
提交之后全$WA$,只能慢慢差错了(思路应该没错吧,$qwq$)。
$error1$
没有特判$n==1$的情况。然后加上继续$WA,qwq$。(我太菜了这题果然毒瘤。)
$jio$的自己太菜
不用快读和快输了,改成scanf() & printf()
。继续$WA$。
$error2$
没有特判$n==0$的情况。然后加上继续$WA,qwq$。
$error3$
思路错了,qwq
【XR-2】奇迹
题目
戳。
思路
$N/A$
Code
N/A
【XR-2】伤痕
题目
戳。
思路
$N/A$
Code
N/A
【XR-2】约定
题目
戳。
思路
$N/A$
Code
N/A
【XR-2】记忆
题目
戳。
思路
$N/A$
Code
N/A
【XR-2】永恒
题目
戳。
思路
$N/A$
Code
N/A