CINTA 第一周选做题
第一章
对于任意
a
2
=
3
k
+
r
a^2=3k+r
a2=3k+r ,根据 除法原理: 对于任意数 x,都有
x
=
3
q
+
b
x=3q+b
x=3q+b
那么 对于
x
2
=
(
3
q
+
b
)
2
=
9
q
2
+
6
q
b
+
b
2
x^2=(3q+b)^2=9q^2+6qb+b^2
x2=(3q+b)2=9q2+6qb+b2 其中
b
∈
{
0
,
1
,
2
}
b\in \{0,1,2\}
b∈{0,1,2}
那么
b
2
∈
{
0
,
1
,
4
}
b^2\in\{0,1,4\}
b2∈{0,1,4},
b
2
%
3
∈
{
0
,
1
}
b^2\%3\in\{0,1\}
b2%3∈{0,1} 由此可得
x
2
=
3
k
+
r
x^2=3k+r
x2=3k+r,其中
r
∈
{
0
,
1
}
r\in\{0,1\}
r∈{0,1}.
#include<stdio.h>
#include<math.h>
bool Issqrt(int n){
if(n%3==2){
return false;
}
if(n%3==0&&n/3%3==0){
return Issqrt(n/9);
}
else if(n%3==0){
return false;
}
for(int i=0;pow((3*i+1),2)<=n;i++){
if((3*i+1)*(3*i+1)==n||(3*i+2)*(3*i+2)==n){
return true;
}
}
return false;
}
int main(){
int a;
while(scanf("%d",&a)!=EOF){
if(Issqrt(a)){
printf("Yes\n");
}
else{
printf("No\n");
}
}
return 0;
}
对于任意 x = 1111 … … 1111 ⏟ n = a 2 x=\underbrace{1111……1111}_{n}=a^2 x=n 1111……1111=a2而言,x必然是奇数,a必然是奇数,令 a = 2 k + 1 a=2k+1 a=2k+1,则 a 2 = 4 k 2 + 4 k + 1 , k ∈ Z a^2=4k^2+4k+1,k\in Z a2=4k2+4k+1,k∈Z。而对于形如 1111....1111 ⏟ n = x \underbrace{1111....1111}_{n}=x n 1111....1111=x而言, ( x − 1 ) / 4 = 555 … … 555 ⏟ n − 1 / 2 ≠ k 2 + k (x-1)/4=\underbrace{555……555}_{n-1}/2\neq k^2+k (x−1)/4=n−1 555……555/2=k2+k因为前者是小数,后者是整数,矛盾。
第二章
假设
g
c
d
(
a
,
b
∗
c
)
≠
1
gcd(a,b*c)\neq1
gcd(a,b∗c)=1,
g
c
d
(
a
,
b
∗
c
)
=
x
gcd(a,b*c)=x
gcd(a,b∗c)=x
那么必然有
x
∣
a
,
x
∣
b
或
x
∣
c
或
c
∣
x
或
b
∣
x
x|a,x|b或x|c或c|x或b|x
x∣a,x∣b或x∣c或c∣x或b∣x
则分别有
g
c
d
(
a
,
b
)
=
x
或
g
c
d
(
a
,
c
)
=
x
或
g
c
d
(
a
,
c
)
=
c
或
g
c
d
(
a
,
b
)
=
b
gcd(a,b)=x或gcd(a,c)=x或gcd(a,c)=c或gcd(a,b)=b
gcd(a,b)=x或gcd(a,c)=x或gcd(a,c)=c或gcd(a,b)=b
与题目矛盾。因此
g
c
d
(
a
,
b
∗
c
)
=
1
gcd(a,b*c)=1
gcd(a,b∗c)=1
由上一题可知
g
c
d
(
a
,
b
)
=
1
,
g
c
d
(
a
,
c
)
=
1
gcd(a,b)=1,gcd(a,c)=1
gcd(a,b)=1,gcd(a,c)=1可知
g
c
d
(
a
,
b
∗
c
)
=
1
gcd(a,b*c)=1
gcd(a,b∗c)=1
由
g
c
d
(
a
,
b
)
=
1
gcd(a,b)=1
gcd(a,b)=1,可得
g
c
d
(
a
,
b
2
)
=
1
gcd(a,b^2)=1
gcd(a,b2)=1,同理可得
g
c
d
(
a
,
b
n
)
=
1
gcd(a,b^n)=1
gcd(a,bn)=1
由上一题可知
g
c
d
(
a
,
b
)
=
1
,
g
c
d
(
a
,
c
)
=
1
gcd(a,b)=1,gcd(a,c)=1
gcd(a,b)=1,gcd(a,c)=1可知
g
c
d
(
a
,
b
∗
c
)
=
1
gcd(a,b*c)=1
gcd(a,b∗c)=1
由
g
c
d
(
a
,
b
)
=
g
c
d
(
b
,
a
)
=
1
gcd(a,b)=gcd(b,a)=1
gcd(a,b)=gcd(b,a)=1,
可得
g
c
d
(
b
,
a
2
)
=
1
,
g
c
d
(
a
2
,
b
)
=
1
gcd(b,a^2)=1,gcd(a^2,b)=1
gcd(b,a2)=1,gcd(a2,b)=1
可得
g
c
d
(
a
2
,
b
2
)
=
1
gcd(a^2,b^2)=1
gcd(a2,b2)=1
g
c
d
(
a
n
,
b
n
)
=
1
gcd(a^n,b^n)=1
gcd(an,bn)=1
假设
g
c
d
(
a
,
b
)
∗
x
=
a
gcd(a,b)*x=a
gcd(a,b)∗x=a
g
c
d
(
a
,
b
)
∗
y
=
b
gcd(a,b)*y=b
gcd(a,b)∗y=b
可得,
g
c
d
(
x
,
y
)
=
1
gcd(x,y)=1
gcd(x,y)=1
由上一题可得
g
c
d
(
x
d
,
y
d
)
=
1
gcd(x^d,y^d)=1
gcd(xd,yd)=1
g
c
d
(
a
,
b
)
d
∗
x
d
=
a
d
gcd(a,b)^d*x^d=a^d
gcd(a,b)d∗xd=ad
g
c
d
(
a
,
b
)
d
∗
y
d
=
b
d
gcd(a,b)^d*y^d=b^d
gcd(a,b)d∗yd=bd
可得
g
c
d
(
a
d
,
b
d
)
=
g
c
d
(
a
,
b
)
d
gcd(a^d,b^d)=gcd(a,b)^d
gcd(ad,bd)=gcd(a,b)d
证明完毕。