标签:
1、判断101-200之间有多少个素数,并输出所有的素数。
判断素数的方法:用一个数分别除去2到sqrt(这个数),如果能被整除,则说明这个数不是素数,反之则是素数。
1 public class lianxi01 { 2 public static void main(String[] args) { 3 int count = 0; 4 for (int i = 101; i <= 200; i++) { 5 for (int j = 2; j <= i; j++) { 6 if (i % j == 0 && i == j) { 7 count++; 8 System.out.println(i); 9 } else if (i % j == 0 && i != j) { 10 break; 11 } 12 } 13 } 14 System.out.println("素数个数是:" + count); 15 } 16 }
2、打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
分析:利用for循环控制100-999个数,每个数分解成百位、十位、个位。
1 public class lianxi02 { 2 public static void main(String[] args) { 3 int i,j=0,k; 4 int bai,shi,ge; 5 for(i=100;i<1000;i++){ 6 bai=i/100; //求百位数 7 shi=(i/10)%10; //求十位数 8 ge=(i%100)%10; //求个位 9 k=bai*bai*bai+shi*shi*shi+ge*ge*ge; 10 if(i==k){ 11 System.out.println(i); 12 j++; 13 } 14 } 15 System.out.println("符合条件的水仙花数为:"+j); 16 } 17 }
3、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
1 package com.clong.test; 2 3 import java.util.Scanner; 4 5 public class lianxi03 { 6 public static void main(String[] args) { 7 for (;;) { 8 Scanner sc = new Scanner(System.in); 9 int a, b; 10 int j = 0; 11 System.out.println("请输入一个整数:"); 12 a = sc.nextInt(); 13 b = a; // 保存原数 14 int age[] = new int[10]; // 用来存质因数 15 for (int i = 2; a != 1;) { 16 if (a % i == 0) { 17 age[j] = i; 18 j++; 19 a = a / i; 20 } else { 21 i++; 22 } 23 } 24 System.out.print(b + "="); 25 for (int i = 0; i < j; i++) { 26 System.out.print(age[i]); 27 if(i<j-1)//判断是否是最后一位质因数,不是输出* 28 System.out.print("*"); 29 } 30 System.out.println(); 31 } 32 } 33 }
4、题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1 public class lianxi04 { 2 public static void main(String[] args) { 3 int abcCount = 0; // 英文字母个数 4 int spaceCount = 0; // 空格键个数 5 int numCount = 0; // 数字个数 6 int otherCount = 0; // 其他字符个数 7 Scanner scan = new Scanner(System.in);// 扫描器接受控制台的输入信息 8 System.out.println("输入一组字符"); 9 String str = scan.nextLine(); // 取出控制台的一行信息,也就是你输入的信息 10 char[] ch = str.toCharArray(); // 把取道的字符串变成一个char数组 11 for (int i = 0; i < ch.length; i++) { 12 if (Character.isLetter(ch[i])) { // 判断是否字母 13 abcCount++; 14 } else if (Character.isDigit(ch[i])) { // 判断是否数字 15 numCount++; 16 } else if (Character.isSpaceChar(ch[i])) { // 判断是否空格键 17 spaceCount++; 18 } else { // 以上都不是则认为是其他字符 19 otherCount++; 20 } 21 } 22 System.out.println("字母个数:" + abcCount); 23 System.out.println("数字个数:" + numCount); 24 System.out.println("空格个数:" + spaceCount); 25 System.out.println("其他字符个数:" + otherCount); 26 } 27 }
标签:
原文地址:http://www.cnblogs.com/longc/p/5946096.html