7-1 h0160. 输出素数
分数 10
编写一个循环,判断A~B之间有多少个素数,并输出所有素数。素数又叫质数,就是除了1和它本身之外,再也没有整数能被它整除的数。也就是素数只有两个因子。
输入格式:
输入在一行中给出2个正整数A和B(10<=a,b<=10000)。
输出格式:
输出A~B之间的所有素数,且每个素数占一行。
输入样例:
10 20
输出样例:
1. 11 2. 13 3. 17 4. 19
import io.StdIn object Main { def main(args: Array[String]): Unit = { var l = StdIn.readLine() var s = l.split(" ") var m = s(0).toInt var n = s(1).toInt for (i <- m to n) { var f : Int = 1 for (j <- 2 to 9 if f != 0){ if (i % j == 0) f = 0 } if (f == 1) println(i) } } }
7-2 h0161. 分解质因数
分数 10
将一个正整数分解质因数。例如:输入90,打印出
1. 90=2*3*3*5 2.
输入格式:
输入在一行中给出1个正整数n(n<10e9)。
输出格式:
在一行中输出n和他的因子值,如样例所示。
输入样例:
90
输出样例:
90=2*3*3*5
7-3 h0161. 求最大公约数和最小公倍数
分数 10
输入两个正整数a和b,求其最大公约数和最小公倍数。
输入格式:
输入在一行中给出2个不超过100000的正整数A和B。
输出格式:
在2行中输出A、B的最大公约数和最小公倍数。
输入样例:
42 36
输出样例:
1. 最大公约数为:6 2. 最小公倍数为:252
import io.StdIn object Main { def main (args : Array[String]):Unit={ var l = StdIn.readLine() var s = l.split(" ") var a = s(0).toInt var b = s(1).toInt if (a > b) { var t = a; a = b; b = t; } var maxn = -0x3f3f3f3f for (i <- 1 to b / 2) { if (b % i == 0 && a % i == 0) { if (maxn < i) { maxn = i } } } var g = a * b / maxn println("最大公约数为:" + maxn + "\n" + "最小公倍数为:" + g) } }
7-4 h0162. 字符的个数
分数 10
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
输入格式:
在一行中给出不超过1000个的字符。
输出格式:
分别输出英文字母、空格、数字和其它字符的个数。
输入样例:
sghye356hf7456767632re;'wetet.';'wetye'tyye;'rw'wetry etew er
输出样例:
字母有 36 个 空格有 2 个 数字有 13 个 其他字符有 10 个
import io.StdIn object Main { def main(args:Array[String]) : Unit = { var str = StdIn.readLine() var zm ,sz ,back ,qt = 0 for (i <- str) { if ((i >= 'a' && i <= 'z') || (i >= 'A' && i <= 'Z')) { zm += 1 } else if (i >= '0' && i <= '9') { sz += 1 } else if (i == ' ') { back += 1 } else { qt += 1 } } printf("字母有 %d 个\n空格有 %d 个\n数字有 %d 个\n其他字符有 %d 个",zm ,back ,sz ,qt) } }
7-5 h0163. 求值
分数 5
求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。
输入格式:
在一行中给出1个正整数a。
输出格式:
在一行中输出a+aa+aaa+aaaa+aa…a(a个数)的值。
输入样例:
2
输出样例:
24
import io.StdIn object Main{ def main(args:Array[String]) : Unit = { var x = StdIn.readInt() var t ,sum = 0 for (i <- 1 to x) { t = t * 10 + x sum += t; } println(sum) } }
7-6 h0164. 求三位数个数
分数 10
有n(n<10)个数字,能组成多少个互不相同且无重复数字的三位数?
输入格式:
在一行中给出1个不超过10的正整数n。
输出格式:
在一行中输出三位数个数。
输入样例:
4
输出样例:
24
import io.StdIn object Main { def main(args : Array[String]) : Unit = { var n = StdIn.readInt() var cnt = 0 for (i <- 1 to n) { for (j <- 1 to n) { for (k <- 1 to n) { if (i != j && j != k && i != k) { cnt += 1 } } } } println(cnt) } }
7-7 h0165. 最后留下的是谁?
分数 15
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
输入格式:
在一行中给出1个不超过1000的正整数n。
输出格式:
在一行中输出最后留下的是原来第几号
输入样例:
5
输出样例:
4
本题还有一个测试点没有过可以参考^_^
import io.StdIn object Main { def main(args : Array[String]) : Unit = { var n = StdIn.readInt() var s = 0 for (i <- 2 to n) s = (s + 3) % i print(s + 1) } }