黑马程序员技术交流社区
标题:
题目改啦!小程序题,这个简单了
[打印本页]
作者:
打工人
时间:
2012-10-29 11:58
标题:
题目改啦!小程序题,这个简单了
本帖最后由 冯海霞 于 2012-10-29 17:00 编辑
要求:给出16个数:3,9,43,25,2,4,11,71,63,53,7,251,279,191,51,39
找出其中的素数,并按从大到小的顺序输出。
作者:
种生祥
时间:
2012-10-29 12:02
占个楼!
作者:
樊鹏飞
时间:
2012-10-29 12:04
真好 真好
作者:
会飞的鱼
时间:
2012-10-29 12:18
没点思路啊!! 得求教黄老邪去了。。。
作者:
李亚飞
时间:
2012-10-29 13:15
樊鹏飞 发表于 2012-10-29 12:04
真好 真好
小樊子,近来可好啊……
作者:
徐强
时间:
2012-10-29 13:33
占个楼先,算法先想想
作者:
张忠豹
时间:
2012-10-29 13:34
头痛……
作者:
梁枝武
时间:
2012-10-29 13:58
请问一下 题目是否要求每个魔方中的数 各不相同?
作者:
刘长辉
时间:
2012-10-29 16:07
javasrcipt可以吗!!
作者:
梁枝武
时间:
2012-10-29 16:48
本帖最后由 梁枝武 于 2012-10-29 18:36 编辑
package com.itheima;
public class Test {
public static void main(String[] args){
int j,k,n=0;
int[] b=new int[10];
int[] arr = {3,9,43,25,2,4,11,71,63,53,7,251,279,191,51,39};
for(int i=0;i<arr.length;i++)
{
k=(int) Math.sqrt(arr[i]);
for( j=2;j<=k;j++)
if(arr[i]%j==0) break;//判断是否素数
if(j>k)
{
b[n]=arr[i]; //存放素数
n++;
}
}
System.out.print("所有的素数为:");
for(int i = 0;i<n;i++)
System.out.print(" "+b[i]);
for(int i=0;i<n-1;i++){
for( j=i+1;j<n;j++){
if(b[i]>b[j]){
int temp = b[i];
b[i] = b[j];
b[j] = temp;
}
}
}
System.out.println("");
System.out.print("小到大排序为:");
for(int i = 0;i<n;i++)
System.out.print(" "+b[i]);
}
}
复制代码
运行结果为:
所有的素数为: 3 43 2 11 71 53 7 251 191
小到大排序为: 2 3 7 11 43 53 71 191 251
作者:
打工人
时间:
2012-10-29 17:00
梁枝武 发表于 2012-10-29 16:48
看看这个行不行
你要不要适当的加点注释
作者:
王振
时间:
2012-10-29 17:50
本帖最后由 王振 于 2012-10-29 19:02 编辑
import java.util.ArrayList;
import java.util.Arrays;
public class day1029 {
public static void main(String[] args) {
//创建数组。
int[] array = {3,9,43,25,2,4,11,71,63,53,7,251,279,191,51,39};
//创建ArrayList对象。
ArrayList<Integer> al = new ArrayList<Integer>();
//遍历需要判断的数组,调用isSuShu()判断是否为素数。素数添加到ArrayList
for(int i=0; i<array.length; i++) {
if(isSuShu(array[i])) {
al.add(array[i]);
}
}
//创建Integer数组。
Integer[] arr = new Integer[al.size()];
//将ArrayList中的元素转换到Integer数组中。
arr = al.toArray(arr);
//排序。
Arrays.sort(arr);
//打印。
print(arr);
}
//判断是否为素数。
public static boolean isSuShu(int m) {
int mid = (int)Math.sqrt(m);
if(m == 1) {
return false;
}
for(int i=2; i<=mid; i++) {
if(m % i == 0) {
return false;
}
}
return true;
}
//打印数组。
public static void print(Integer[] arr) {
System.out.print("[");
for(int i=0; i<arr.length; i++) {
if(i!=arr.length-1) {
System.out.print(arr[i] + ",");
} else {
System.out.print(arr[i]);
}
}
System.out.print("]");
}
}
复制代码
作者:
徐强
时间:
2012-10-29 18:02
public class Prime {
/**
* 给出16个数:3,9,43,25,2,4,11,71,63,53,7,251,279,191,51,39
* 找出其中的素数,并按从大到小的顺序输出
*/
public static void main(String[] args) {
//已知的16个数
int a[]={3,9,43,25,2,4,11,71,63,53,7,251,279,51,39};
//筛选10000以内的素数
final int MAX = 10000;
final int NSQR = 1000;
//定义arr数组来表示筛选出来的素数
int arr[] = new int[MAX];
//arr数组坐标i不是素数的话就令arr[i]=1
for(int k=2;k<NSQR;k++){
if(arr[k]==0){
for(int i=2*k;i<MAX;i+=k){
arr[i] = -1;
}
}
}
//arr[i]==0的话 i就是素数 当arr[a[i]]==0时 a[i]就是素数
for(int i=0;i<a.length;i++){
if(arr[a[i]]==0){
arr[a[i]] = a[i];
}
}
//查找出arr[i]中大于1的值,这些值刚好是数组a中的素数,并按大小排序。
for(int i=0;i<arr.length ;i++){
if(arr[i]>=1){
System.out.print(arr[i]+"\t");
}
}
}
}
作者:
马磊
时间:
2012-10-29 18:17
import java.util.Comparator;
import java.util.TreeSet;
public class PrimeNumberSort {
/*
*要求:给出16个数:3,9,43,25,2,4,11,71,63,53,7,251,279,191,51,39
找出其中的素数,并按从大到小的顺序输出。
*/
public static void main(String[] args) {
//定义数组存放16个数
int[] arr = {3,9,43,25,2,4,11,71,63,53,7,251,279,191,51,39};
//定义一个TreeSet用于存放素数,因为TreeSet是有序的,所以可以使用其排序,MyComparator为自定义的排序顺序
TreeSet<Integer> ts = new TreeSet<Integer>(new MyComparator());
for (int i = 0; i < arr.length; i++) {//遍历数组
for (int j = 2; j <=Math.sqrt(arr[i])+1; j++) { //判断数组中的元素能否从2到它的平方根的数整除
if(arr[i]==2) //数组中元素是2的话,它直接就是素数了
ts.add(arr[i]); //把2放入TreeSet
else if(arr[i]%j==0) //能被整除,证明它不是素数,终止本轮循环
break;
if (j > Math.sqrt(arr[i])) { //从2到这个元素的平方根,都没有能数能整除这个元素,证明它是素数
ts.add(arr[i]);
}
}
}
System.out.println(ts.toString()); //打印最后的结果
}
}
//自定义TreeSet里的比较方法
class MyComparator implements Comparator<Integer>{
@Override
public int compare(Integer o1, Integer o2) {
return o2-o1; //TreeSet里默认是从小到大排列,比较的是o1-o2,用o2-o1使其从大到小排列
}
}
复制代码
作者:
杨雪松
时间:
2012-10-29 19:34
package test;
public class Sushu
{
public static void zhao(int[] arr )//找到素数
{
System.out.print("素数为:");
for (int a=0;a<arr.length;a++)
{
for (int x=2;x<arr[a];x++)
{
if(arr[a]%x==0)
break;
if(x==arr[a]-1)
System.out.print(arr[a]+",");
}
}System.out.println();
}
public static void pao(int[] arr)//冒泡排序
{
System.out.print("排序:");
for (int x=0;x<arr.length-1 ;x++ )
{
for (int y=0;y<arr.length-x-1 ;y++ )
{
if (arr[y]>arr[y+1])
{
int b=arr[y];
arr[y]=arr[y+1];
arr[y+1]=b;
}
}
}
}
public static void print(int[] arr)//打印
{
System.out.print("[");
for (int x=0;x<arr.length ;x++ )
{
System.out.print(arr[x]);
if (x!=arr.length-1)
System.out.print(",");
}
System.out.println("]");
}
public static void main(String[] args)
{
int arr[]={3,9,43,25,2,4,11,71,63,53,7,251,279,191,51,39};
print(arr);
zhao(arr);
pao(arr);
print(arr);
}
}
复制代码
我也来了
作者:
周万谋
时间:
2012-10-29 20:17
来凑凑热闹,{:soso_e142:}
public class PrintSuShu {
public static void main(String[] args) {
int[] source = {3,9,43,25,2,4,11,71,63,53,7,251,279,191,51,39};
int[] newSource = new int[9];//定义数组装素数,因为数组有个自带排序的方法
int count=0;
for(int x=0;x<source.length;x++){
int num = isPrime(source[x]);
if(num!=-1){//根据返回值来判断是否是素数
newSource[count]= num;
count++;
}
}
Arrays.sort(newSource);//数组自带的排序方法
for(int x=0;x<newSource.length;x++){//打印
System.out.print(newSource[x] + " ");
}
}
/*判断是否是素数的方法,如果是返回该数,如果不是返回-1*/
public static int isPrime(int n){
for(int i=2;i<=n/2;i++){
if(n%i == 0)
return -1;
}
return n;
}
}
复制代码
得到结果是:
2 3 7 11 43 53 71 191 251
作者:
王永荣
时间:
2012-10-29 20:43
public class TestPrime{
public static boolean isPrime(int num){
if(num <2)
return false;
for(int i=2;i<=Math.sqrt(num);i++){
if(num%i==0)
return false;
}
return true;
}
public static void sortArray(int a[]){
int temp;
for(int i=0; i<a.length-1; i++){
for(int j=i+1; j<a.length; j++){
if(a[i]<a[j]){
temp =a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
public static void main(String[] args){
int n[] ={3,9,43,25,2,4,1,71,63,53,7,251,279,191,51,39};
int j =0;
//先排序再判断是否素数和输出。。这也可以的吧=,=
sortArray(n);
for(int i =0 ;i<n.length; i++)
{
if(isPrime(n[i])){
System.out.print(n[i]+" ");
}
}
}
}
复制代码
输出结果:251 191 71 53 43 7 3 2
作者:
小灰灰
时间:
2012-10-29 21:03
package du;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
public class Demo {
@Test
public void test() {
int[] source = { 3, 9, 43, 25, 2, 4, 11, 71, 63, 53, 7, 251, 279,
191, 51, 39 };
Arrays.sort(source);
List<Integer> l=new ArrayList<Integer>();
System.out.println("其中的素数是:");
for(int i:source){
if(isPrime(i)){
l.add(i);
System.out.print(i);
System.out.print(" ");
}
}
System.out.println("\n从大到小排列结构为");
for(int j=l.size()-1;j>=0;j--){
System.out.print(l.get(j));
System.out.print(" ");
}
}
boolean isPrime(int num) {
if (num == 2 || num == 3) {
return true;
}
if (num % 6 != 1 && num % 6 != 5) {
return false;
}
for (int i = 5; i * i <= num; i += 6) {
if (num % i == 0 || num % (i + 2) == 0) {
return false;
}
}
return true;
}
}
复制代码
其中的素数是:
2 3 7 11 43 53 71 191 251
从大到小排列结构为
251 191 71 53 43 11 7 3 2
作者:
李润根
时间:
2012-10-31 00:04
import java.util.Arrays;
class Test12
{
public static void main(String[] args)
{
int[] arr = {3,9,43,25,2,4,11,71,63,53,7,251,279,191,51,39};
Arrays.sort(arr);
for(int x=arr.length-1; x>=0; x--)
{
if(isPrime(arr[x]))
System.out.print(arr[x]+" ");
}
}
public static boolean isPrime(int num)
{
if(num==2 || num==3)
return true;
for(int x=2; x<num; x++)
{
if(num%x == 0)
return false;
}
return true;
}
}
251 191 71 53 43 11 7 3 2
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2