【素数练习题】
基础题
判断素数
题目描述:
输入一个整数n(n > 1),判断它是否为素数。
输入:一个整数n。
输出:如果n是素数,输出“Yes”,否则输出“No”。
素数个数统计
题目描述:输入一个整数n,统计并输出小于等于n的素数的个数。
输入:一个整数n。
输出:小于等于n的素数的个数。
寻找第k个素数
题目描述:输入一个整数k,找出并输出第k个素数。
输入:一个整数k。
输出:第k个素数。
进阶题
素数对
题目描述:
输入两个整数a和b(a <= b),找出并输出在区间[a, b]内所有的素数对(p, q),其中p < q且p和q都是素数。
输入:两个整数a和b。
输出:所有满足条件的素数对,每对素数之间用空格隔开,并按升序排列。
最大素数因子
题目描述:
输入一个整数n(n > 1),找出并输出n的最大素数因子。
输入:一个整数n。
输出:n的最大素数因子。
素数环
题目描述:
将1到n这n个数排成一个环,使得相邻的两个数之和为素数。注意,第一个数和最后一个数也要被视为相邻的。求出所有满足条件的排列方式,并输出排列的总数。
输入:一个整数n。
输出:满足条件的排列的总数。
提高题
素数分解
题目描述:
输入一个整数n(n > 1),将其分解为若干个素数相乘的形式,并输出这些素数和它们的指数。
输入:一个整数n。
输出:n的素数分解形式,例如“n = p1^e1 * p2^e2 * … * pk^ek”,其中p1, p2, …, pk是素数,e1, e2, …, ek是它们的指数。
最小素数差
题目描述:
给定两个整数L和R(L <= R),找出并输出在区间[L, R]内相邻两个素数之间的最小差值。
输入:两个整数L和R。
输出:在区间[L, R]内相邻两个素数之间的最小差值。
素数方阵
题目描述:
构造一个n*n的方阵,使得方阵中的每个元素都是素数,并且每行、每列以及两条对角线上的元素之和都是素数。求出满足条件的方阵的个数,并输出其中一个满足条件的方阵(如果有多个解,输出任意一个即可)。
输入:一个整数n。
输出:满足条件的方阵的个数和一个满足条件的方阵。