@ZHANGQIANYI2020
HNUCM-OJ XP的素数,XP的三角形,XP的点滴,最长递增子序列,最长递增子序列2,0-1背包问题
问题 A: XP的素数
(时间限制: 1 Sec 内存限制: 128 MB)
题目描述:
XP最近对素数很痴迷,特别是那些特殊的素数,其中有一类素数被称为孪生素数。其定义如下:如果一个数k是素数,k+2也是素数,那么k和k+2成为一对孪生素数。请计算一个给定区间m和n(0<m<n)中孪生素数对的个数。
输入:
单组输入数据
m n
(0<m<n<1000)
输出:
请输出一行结果:区间[m,n]中孪生素数对的个数
样例输入:
1 999
样例输出:
35
参考答案:
import java.util.Scanner;
public class Main {
public static boolean Prime(int n){
int i;
if(n==1)
return false;
for(i=2;i<n;i++){
if(n%i == 0)
return false;
}
return true;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int m=sc.nextInt();
int n=sc.nextInt();
int ans=0;
for(int i=m;i<=n-2;i++){
boolean a=Prime(i);
boolean b=Prime(i+2);
if(a&&b)
ans++;
}
System.out.println(ans);
}
}
}
问题 B: XP的三角形
(时间限制: 1 Sec 内存限制: 128 MB)
题目描述:
XP最喜欢的图形是三角形,最近他在研究直角三角形,他想到这么一个问题,如果三边长{a,b,c}均为整数的直角三角形周长为p,(a<=b<=c)当p = 120时,恰好存在三个不同的解:{a=20,b=48,c=52}, {a=24,b=45,c=51}, {a=30,b=40,c=50}。现在给定一个p求不同的解的个数。(p<=1000)
输入:
单组输入数据
p
输出:
输出一行结果
样例输入:
120
样例输出:
3
参考答案:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
int n = sc.nextInt();
int a,b,c;
int ans = 0;
for(a=1;a<n/2;a++)
for(b = 1 ; b < n/2 ; b++) {
c = n-a-b;
if(a*a+b*b==c*c&&a<=b) {
ans++;
}
}
System.out.println(ans);
}
}
}
</