zl程序教程

您现在的位置是:首页 >  其它

当前栏目

【创】素数

素数
2023-09-11 14:16:58 时间

小刚接受又一个任务,任务内容:你会收到两个整数a,b,但是你是不知道哪个数比较大,你需要做的是在区间[a,b]间,找出所有的素数并且打印出来,要求打印中每一行只能10个。
作为小刚的最佳队友的你,请设计一个Java程序来协助小刚完成这个任务。

输入要求:
多组数据,每一组数据输入两个整数a,b
输出要求:
按照题目的条件输出答案

/**
 * 
 */
package j0402;

import java.util.Scanner;

/**
 * @author CeciliaXinny
 *
 */
public class Java {

	/**
	 * @param args 素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。
	 * 
	 *             把 n 被 2 ~ n-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。
	 * 
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		while (in.hasNext()) {
			int a = in.nextInt();
			int b = in.nextInt();
			// pan 判断 a < b?
			if (a > b) {
				int c = a;
				a = b;
				b = c;
			}
			int count = 0;// 每十个数换行
			for (int i = a; i <= b; i++) {
				if(i==1)continue;
				boolean flag = true;
				for (int j = 2; j < i; j++) {// 判断2~是否可以除
					if (i % j == 0) {
						flag = false;// 能被除就++
						break;
					}
				}

				if (flag) {
					if (count == 9) {
						System.out.printf(" %d\n",i);
						count = 0;
					} 
					else if(count==0) {
						System.out.printf("%d",i);
						count++;
					}
					else {
						System.out.printf(" %d", i);
						count++;
					}

				}

			}
			System.out.println();
		}

	}

}