B Goldbach
猜想……验证猜想,
所以就大胆猜想吧。我猜从x/2开始可以很快就找到那两个素数,感谢学长的Java真找到了,尤其是判素数,还挺快。
Description:
Goldbach’s conjecture is one of the oldest and best-known unsolved problems in number theory and all of mathematics. It states:
Every even integer greater than 2 can be expressed as the sum of two primes.
The actual verification of the Goldbach conjecture shows that even numbers below at least 1e14 can be expressed as a sum of two prime numbers.
Many times, there are more than one way to represent even numbers as two prime numbers.
For example, 18=5+13=7+11, 64=3+61=5+59=11+53=17+47=23+41, etc.
Now this problem is asking you to divide a postive even integer n (2
Input:
The first line of input is a T means the number of the cases.
Next T lines, each line is a postive even integer n (2
Output:
The output is also T lines, each line is two number we asked for.
T is about 100.
本题答案不唯一,符合要求的答案均正确
样例输入
1
8
样例输出
3 5
//Problem B
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner Cin = new Scanner(System.in);
int t = Cin.nextInt();
for(int ca = 0;ca <= t;ca ++){
long x = Cin.nextLong();
if(x == 4){
System.out.println("2 2");
continue;
}
long y = x / 2;
if(y % 2 == 0) y ++;
while(y > 0){
long z = x - y;
if(BigInteger.valueOf(y).isProbablePrime(100) && BigInteger.valueOf(z).isProbablePrime(100)){
System.out.println(y + " " +z);
break;
}
y -= 2;
}
}
}
}
以下是3道小题
//Prolem E
#include <iostream>
using namespace std;
const long long M = 1000000007;
const long long MAXL = 1000000;
typedef long long int lli;
int main() {
int n;
while (cin >> n) {
lli ans = 1;
for(int i = 0;i < n;i ++){
int tmp;
scanf("%d",&tmp);
ans = ans * (tmp + 1) % M;
}
printf("%lld\n",ans);
}
return 0;
}
//Problem I 很神奇,y-x总是能够被9整除。
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner Cin = new Scanner(System.in);
while (Cin.hasNext()) {
BigInteger x = Cin.nextBigInteger();
char[] y = x.toString().toCharArray();
for (int i = 0; i < y.length - i - 1; i++) {
char tmp = y[i];
y[i] = y[y.length - i - 1];
y[y.length - i - 1] = tmp;
}
String z = new String(y);
BigInteger p = new BigInteger(z);
char[] q = p.subtract(x).divide(BigInteger.valueOf(9)).abs().toString().toCharArray();
boolean flag = true;
for(int i = 1;i < q.length;i ++){
if(q[i] != q[i - 1]){
flag = false;
}
}
if(flag) System.out.println("YES");
else System.out.println("NO");
}
}
}
//Problem L,异或函数fx的最大值等于最大元素的值
#include <bits/stdc++.h>
using namespace std;
int T,a[10001],s,mx,n;
int main() {
scanf("%d",&T);
while (T--) {
s=mx=0;
scanf("%d",&n);
for (int i=0;i<n;++i) {
scanf("%d",&a[i]);
s=max(s,a[i]);
}
printf("%d\n",s);
}
return 0;
}