violetae 2022-12-23 11:15 采纳率: 66.7%
浏览 43
已结题

不太懂 这个程序用c语言怎么写

输入一行由数字字符(不含字符'0')构成的字符串(最长不超过80字符,以回车结束),从字符串中任意的选取连续的
两个或三个数字字符,构成的数字如果是质数则称为找到一个“串中质数”,请编程计算在给定的字符串中
最多能找到多少个不同的“串中质数”

注:两个“串中质数”,只要它们中有一个字符不同或位置不同,就算不同的两个“串中质数”,例如
2131中有三个串中质数,分别为“13”、“31”和“131”

  • 写回答

1条回答 默认 最新

  • 滴水不穿石 2022-12-24 12:03
    关注

    供参考,谢谢!

    img

    img

    #include <stdio.h>
    
    int isP(int n)
    {
        if (n < 2)
            return 0;
        for (int i = 2; i < n / 2; i++)
        {
            if (n % i == 0)
                return 0;
        }
        return 1;
    }
    
    int getCount(char *s)
    {
        char *p = s;
        int a, count = 0;
    
        puts("");
        while (*p != '\0' && *(p + 1) != '\0')
        {
            a = 10 * (*p - '0') + *(p + 1) - '0';
    
            if (isP(a))
            {
                count++;
                printf("%d ", a);
            }
    
            a *= 10;
            if (*(p + 2) != '\0')
            {
                a += *(p + 2) - '0';
                if (isP(a))
                {
                    count++;
                    printf("%d ", a);
                }
            }
            p++;
        }
        puts("");
        return count;
    }
    
    int main(int argc, char *argv[])
    {
        char s[81];
        scanf("%80s", s);
        printf("质数个数:%d\n", getCount(s));
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 创建了问题 12月23日

悬赏问题

  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)