<span>第4周编程题:零基础学Java</span>
1、素数和(5分)
题目内容:
我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
注意,是第n个素数到第m个素数之间的所有的素数,并不是n和m之间的所有的素数。
输入格式:
两个整数,第一个表示n,第二个表示m。
输出格式:
一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
输入样例:
2 4
输出样例:
15
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
int sum = 0;
int sqt = 0;
for (int i = 2; i <= 1224; i++) {
for (int j = 2; j <= i; j++) {
if (i % j == 0 && i / j != 1) {
break;
}
if (j == i) {
sqt++;
if (n <= sqt && m >= sqt) {
sum += i;
}
}
}
}
System.out.println(sum);
}
}
2、念整数(5分)
题目内容:
你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。
如输入1234,则输出:
yi er san si
注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:
fu er san si yi
输入格式:
一个整数,范围是[-100000,100000]。
输出格式:
表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。
输入样例:
-30
输出样例:
fu san ling
时间限制:500ms内存限制:32000kb
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = 0;
boolean b = true;
String s = "";
if (n < 0) {
b = false;
n = n * -1;
}
do {
m = n % 10;
n = n / 10;
switch (m) {
case 1:
s = " yi" + s;
break;
case 2:
s = " er" + s;
break;
case 3:
s = " san" + s;
break;
case 4:
s = " si" + s;
break;
case 5:
s = " wu" + s;
break;
case 6:
s = " liu" + s;
break;
case 7:
s = " qi" + s;
break;
case 8:
s = " ba" + s;
break;
case 9:
s = " jiu" + s;
break;
case 0:
s = " ling" + s;
break;
default:
s = "?" + s;
}
} while (n != 0);
if (b == false)
s = "fu" + s;
s = s.trim();
System.out.println(s);
}
}