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 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd