m0_64889852 2022-05-09 17:40 采纳率: 28.6%
浏览 545
已结题

c++输出两个数中的素数

求m~n间的所有素数

【问题描述】
输入两个正整数m和n(1<cm,n<=500),输出m和a之间的所有素数,每行输出6个。素数是指只能横1和自身整除的正整数
【样例说明】
每行输出6个正整数,每个正整数占4字符.右对齐,
输入提示符后要加一个空格。其中”:“后要加一个且只能一个空格。
英文字母区分大小写。必须严格按样例输入输出。

  • 写回答

2条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    #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;
    } //结束程序
     
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月24日
  • 已采纳回答 5月16日
  • 创建了问题 5月9日

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd