用JAVA编程验证哥德巴赫猜想
因为上机实验,自己写了这个程序。以前学过C/C++,可能是根深蒂固,感觉写出来的JAVA程序似乎和用C写区别不大,是现在还没有体现出来?呵呵。 
 不知道各位对这个编程问题有没有什么好的方法?觉得自己方法有点笨,呵呵。 
 import   java.io.*; 
 public   class   Prime1{ 
 	public   static   int   isPrime(int   t){ 
 	                           for(int   i=2;i <t;i++) 
 		if(t%i==0) 
 			return   0; 
 		return   1; 
 		}//判断一个给定的数是否为素数。 
 	public   static   void   main(String   args[]){ 
 		int   i,j,k,m,n,o,p; 
 		int   line=5; 
 		int   MAX;//上届 
 		System.out.println( "请输入您要计算的偶数的上界: "); 
 		try{ 
 		                           BufferedReader   in=new   BufferedReader(new   InputStreamReader(System.in)); 
 	                                                      String   t=in.readLine(); 
 			MAX=Integer.valueOf(t).intValue(); 
 		}catch(Exception   exc){ 
 			System.out.println( "您的输入不正确! "); 
 			return; 
 		}//输入上届 
 		for(i=4;i <=MAX;i=i+2){ 
 			j=i/2; 
 			k=isPrime(j); 
 			if(k==1){ 
 				line++; 
 				if(line%5==0) 
 				System.out.println(); 
 				System.out.print( "          "+i+ "= "+j+ "+ "+j); 
 				}//判断该数的一半是否为素数 
 			else{ 
 				for(m=j-1;m> 0;m--){ 
 				n=isPrime(m); 
 				if(n==1){ 
 					p=i-m; 
 					o=isPrime(p); 
 					if(o==1){ 
 						line++; 
 						if(line%5==0) 
 						System.out.println(); 
                                                                                                                                                                      System.out.print( "          "+i+ "= "+m+ "+ "+p); 
 						break; 
 								}//如其一半不为素数,则向前查找一个素数,求原数减去该素数所得时候为素数。 
 							} 
 						continue; 
 						} 
 					} 
 			} 
 	} 
 }
------解决方案--------------------语法不是问题 
 主要在一个思路上面 
 算法一样,但是整体的思路已经不一样了 
 至少你把方法放在了一个类里 
 而不是单纯的一个文件里
------解决方案--------------------算法是没有什么问题,只是代码不够简洁,而且你还不习惯使用boolean   
 并且可以考虑优化isPrime判断,首先循环应该是 
 int sqrt = (int)Math.sqrt(t); 
 for (int i = 2; i  <= sqrt; i++)     
 而且可以考虑将判断为素数的数字保存起来,再保存已经计算过的最大t值, 
 以后isPrime就先从这个素数集合开始判断, 
 如果不在集合中并且t 大于已经计算过的最大t值才继续往下计算