求m~n间的所有素数
【问题描述】
输入两个正整数m和n(1<cm,n<=500),输出m和a之间的所有素数,每行输出6个。素数是指只能横1和自身整除的正整数
【样例说明】
每行输出6个正整数,每个正整数占4字符.右对齐,
输入提示符后要加一个空格。其中”:“后要加一个且只能一个空格。
英文字母区分大小写。必须严格按样例输入输出。
求m~n间的所有素数
【问题描述】
输入两个正整数m和n(1<cm,n<=500),输出m和a之间的所有素数,每行输出6个。素数是指只能横1和自身整除的正整数
【样例说明】
每行输出6个正整数,每个正整数占4字符.右对齐,
输入提示符后要加一个空格。其中”:“后要加一个且只能一个空格。
英文字母区分大小写。必须严格按样例输入输出。
你题目的解答代码如下:
#include <iostream> //控制台操作头文件
#include <math.h> //数学函数头文件
int isprime(int a) //质数判断函数(质数返回1,否则0)
{
if (a < 2)
return 0; //小于2的数都不是质数,返回0
if (a == 2)
return 1; //2是特殊的质数
int i, n = (int)sqrt(a); //n是除数,开方可以减少检测个数
for (i = 2; i <= n; i++) //逐个检测能不能被整除
if (a % i == 0)
return 0; //如果能被整除说明不是质数, 返回0;
return 1;
} //检测完了还没可以被整除的数,返回1
int main() //主函数
{
int i, a, b, m=0; //循环变量和任意两个数
printf("请输入起点:"); //显示提示信息
scanf("%d", &a); //输入起点数值
printf("请输入终点:"); //显示提示信息
scanf("%d", &b); //输入终点数值
printf("%d-%d之间的素质有:\n", a, b); //显示提示信息
for (i = a; i <= b; i++) //用循环逐个找出[a-b]之间的素数
if (isprime(i))
{
printf("%4d", i); //如果是素数则输出
if (++m % 6 == 0)
printf("\n"); //换行
}
return 0;
} //结束程序
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!