黑马程序员技术交流社区
标题:
一个组素数的问题,求解题思想及代码??
[打印本页]
作者:
王广亚
时间:
2013-6-30 09:54
标题:
一个组素数的问题,求解题思想及代码??
我们国家在1949年建国。如果只给你 1 9 4 9 这4个数字卡片,可以随意摆放它们的先后顺序(但卡片不能倒着摆放啊,我们不是在脑筋急转弯!),那么,你能组成多少个4位的素数呢?
比如:1949,4919 都符合要求。
要求打印出这些素数。
作者:
王靖远
时间:
2013-6-30 10:00
先全排列再判断素数就可以了
作者:
王靖远
时间:
2013-6-30 10:21
import java.util.*;
class Demo2
{
private static int NUM = 4;
private static List<Integer>al1 = new ArrayList<Integer>();
public static void main(String[] args)
{
Integer []integer = {1,9,4,9};
List<Integer>list = new ArrayList<Integer>(Arrays.asList(integer));
method(list,new ArrayList<Integer>());
for(Integer i : al1)
{
if(suShu(i))
System.out.println(i);
}
}
private static void method(List<Integer>list,List<Integer>list1){
if(list1.size()== NUM){
Integer [] arr = list1.toArray(new Integer[list1.size()]);
StringBuilder sb = new StringBuilder();
for(int x=0;x<arr.length;x++){
sb.append(arr[x]);
}
String s = new String(sb);
al1.add(Integer.parseInt(s));
return;
}
//System.out.println(list.size());
for(int x=0;x<list.size();x++){
List<Integer>newList = new ArrayList<Integer>(list);
List<Integer>newList1 = new ArrayList<Integer>(list1);
newList1.add(newList.get(x));
newList.remove(x);
method(newList,newList1);
}
}
public static boolean suShu(int i)//定义一个判断是否为素数的方法。
{
int count = 0;
if (i == 1)
return false;
for(int x=1;x<=i;x++)
{
if((i%x)==0)
count++;
}
if(count>2)
return false;
else
return true;
}
}
复制代码
360截图20130630102053271.jpg
(5.01 KB, 下载次数: 0)
下载附件
2013-6-30 10:21 上传
作者:
王广亚
时间:
2013-6-30 16:14
王靖远 发表于 2013-6-30 10:21
谢谢,明了
作者:
lanbuohan
时间:
2013-6-30 18:52
进行排序,最后在用判断语句进行选择,最后输出
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2