您的位置:首页 > 其它

Acm 素数距离问题

2016-07-19 08:27 330 查看

素数距离问题时间限制:3000 ms  |  内存限制:65535 KB难度:2描述现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。如果输入的整数本身就是素数,则输出该素数本身,距离输出0输入第一行给出测试数据组数N(0<N<=10000)接下来的N行每行有一个整数M(0<M<1000000),输出每行输出两个整数 A B.其中A表示离相应测试数据最近的素数,B表示其间的距离。样例输入
36810
样例输出
5 17 1
11 1

public static void main(String[] args) {Scanner scan = new Scanner(System.in);int m = scan.nextInt();int n;while (m-- > 0) {n = scan.nextInt();for (int i = n - 1, j = n + 1; i <= j; i--, j++) {if (sushu(n)) {System.out.println(n + " " + 0);break;} else if (sushu(i)) {System.out.println(i + " " + (n - i));break;} else if (sushu(j)) {System.out.println(j + " " + (j - n));<span style="white-space:pre">	</span>	break;}}System.out.println("\n");}}static boolean sushu(int num) {int j;if (num == 1 || num == 0)return false;for (j = 2; j * j <= num; ++j) {if (num % j == 0) {break;}}if (j * j > num) {return true;} else {return false;}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: