java 题库(一)

1.编程输出用户指定数据的所有素数因子:

 1 import java.io.*; 
2 class SushuDemo{
3 public static void main(String args[]) throws NumberFormatException,IOException{
4 String s = null ;
5 long value = 0 ;
6 int i ;
7 String resultString = "这个数的所有素数因子为\n" ;
8 System.out.println("请输入一个正整数:") ;
9 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) ;
10 s = br.readLine() ;
11 value = Long.parseLong(s) ;
12 for(i=2;i<=value;i++){
13 if (value%i == 0){
14 resultString = resultString + i +"\t" ;
15 while(value%i == 0){
16 value = value/i ;
17 }
18 }
19 }
20 System.out.println(resultString) ;
21 }
22 }


  其中:第15、16两行代码的理解很重要。

 

2.一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如,6的因子为1、2、3,而6=1+2+3,因此6就是完数。编程找出100以内的所有完数。

  【解析】:要求出完数,首先要求这个数的所有因子,然后再把其因子相加,把相加的结果与数本身进行,如果相等,则是完数。继续循环,直到求出100以内的所有完数。

       第一步:循环条件是:小于100的整数;

       第二步:求出各所有因子;

       第三步:把和数的所有因子相加,与该数本身进行,若相等,则输出。

 1 public class WanShu{
2 public static void main(String args[]){
3 int i,j,sum ;
4 for (i=1;i<=100 ;i++ ){ //循环在100以内找出完数
5 sum = 0 ;
6 for (j=1;j<i ;j++ ){
7 if (i%j == 0 ){ //找出数字的所有因子
8 sum = sum + j ; //求数字各因子的和
9 }
10 }
11 if (i==sum){ //若数字和其因子之和相等,则输出该数
12 System.out.println(i+"") ;
13 }
14 }
15 }
16 }


3.编写一个java程序,用穷举法找出2~50之间的质数,并打印出来。

  【解析】:质数就是只能被自己和1整除的数。

       第一步:利用循环语句对2~50之间的正事数进行处理;

       第二步:对每个数,首先置flag为true ,然后判断能否被2到其二分之一值之间的数整除。如能被整除,则置flag为false 。

       第三步:输出flag为true的整数,即质数。

 1 public class ZhiShu{
2 public static void main(String args[]){
3 int i,j,k ;
4 boolean flag ;
5 for (i=2;i<=50 ;i++ ){
6 flag =true ;
7 k=i/2 ;
8 for (j=2;j<=k ;j++ ){
9 if (i%j==0){ //如果该数可以整除其余数,则不可能是质数
10 flag = false ;
11 break ;
12 }
13 }
14 if (flag){
15 System.out.println(i+"") ;
16 }
17 }
18 }
19 }

 

 

posted @ 2011-09-01 22:46  itao_o  阅读(1317)  评论(1)    收藏  举报