那位大虾帮帮忙!
编写一个程序,接收用户输入的自然数并判断它是不是素数,如果是素数,把它加到JtextArea中。如果不是素数,在Jlabel中显示它的质因子。素数的因子只有1和它本身。不是素数的数有惟一的质因子分解。例如,98的质因子是2,7,7,这几个因子的乘积为98,98的质因子输出应该是2和7。 问题点数:20、回复次数:4Top
1 楼andytu(高守)回复于 2003-06-01 17:28:25 得分 5
我就写一个求素数的函数
void getPrimerNum(int num,JLabel label,JTextArea textArea)
{
String s=new String();
m=Math.sqrt(num);
for(int i=2,i<=m;i++){
if(num%i==0)
num=num/i;
s=s+i;
}
if(s.equals(""))
textArea.setText(Interge.toString(num));
else
label.setText(s);
}
不知行否,水平有限。Top
2 楼amjn(神雕过儿)回复于 2003-06-01 17:39:10 得分 5
package test52;
import java.util.*;
import java.io.*;
import java.text.*;
import java.math.*;
class Test52 {
public static void main(String[] args){
try {
BufferedReader bufferIn = new BufferedReader(new InputStreamReader(System.in));
String message = bufferIn.readLine();
while (!message.trim().equals("quit")) {
String wux=Calculate.getResult(Integer.parseInt(message.trim()));
if(wux.equals(message+"*")){
System.out.println(message.trim()+" is 素数");
}
else{
System.out.println(message.trim()+":"+wux.substring(0,wux.length()-1));
}
message = bufferIn.readLine();
}
}
catch(IOException e){
e.printStackTrace();
}
}
}
class Calculate{
public static String getResult(int num){
String result="";
for(int i=2;i<=num;i++){
if(num%i==0){
result=result+String.valueOf(i)+"*"+getResult(num/i);
return result;
}
}
return result;
}
}Top
3 楼Hodex(小何才露尖尖角)回复于 2003-06-01 18:43:15 得分 5
public class Temp{
public static void main(String[] args){
for(int x=2;x<100;x++){
System.out.println(x);
for(int i=1;i<x;i++){
if(x%i==0){
if(check(i)){
System.out.print(" "+i+" ");
}
}
}
System.out.println();
}
}
static boolean check(int a){
for(int i=1;i<a;){
if(a==2)return true;
i++;
if(a%i==0){
return false;
}
if(i>=a-1){
return true;
}
}
return false;
}
}
Top
4 楼ytdmm(相忘于江湖)回复于 2003-06-01 21:02:45 得分 5
判断素数就用那个老办法,稍微改改就可以求质因子了。Top




