YaYa很开心 2022-03-22 18:57 采纳率: 81.3%
浏览 1259
已结题

C语言,输入入2个正整数A和B,然后输出它们之间的素数个数(不包含A,B)

输入格式:
输入正整数A和B,空格分隔。

输出格式:
输出两数间素数的个数(不包括这两个数)。如果输入负数没有输出。

输入样例:
在这里给出一组输入。例如:

10 20
输出样例:
在这里给出相应的输出。例如:

4

img

输出结果是0,不知道为什么

  • 写回答

3条回答 默认 最新

  • a5156520 2022-03-22 19:27
    关注

    应该是代码逻辑错误,如那里第二个for循环的终止条件要改为小于i,然后判断是否为素数的逻辑也要改一下,修改了一下如下:

    
    #include <stdio.h>
    
    int main(void){
        
        int a,b,c,i,j,t,prime=1;
        int sum=0,count=0;
        scanf("%d %d",&a,&b);
        
        for(i=a;i<=b;i++){
            for(j=2;j<i;j++){
                t=i%j;
                if(t==0){
                //    printf("i=%d,j=%d,count=%d\n",i,j,count);
                    prime=0;
                    break;
                }
            }
            if(prime==1){
                count++;
            }
            
            prime=1;
                    
        }
        
        printf("%d",count);
        return 0;
    } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 乔乔家的龙龙 C/C++领域优质创作者 2022-03-22 19:18
    关注

    1.j < b 改成 j< a
    2.if(sum==2)改成 (sum == a)

    评论
  • qzjhjxj 2022-03-22 19:29
    关注

    供参考:

    #include<stdio.h>
    int main() {
        int a, b, c, d = 0, i, e;
        printf("请输入两个数字(a和b):");
        scanf("%d%d", &a, &b);
        if (a > 0 && b > 0)
        {
            for (i = a+1; i < b; i++) {
                c = 2;
                while (c < i) {
                    e = i % c;
                    if (e == 0) break;
                    c++;
                }
                if (c == i && i != 1) d++;
            }
            printf("%d", d);
        }
        return 0;
    }
    
    
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月30日
  • 已采纳回答 3月22日
  • 创建了问题 3月22日

悬赏问题

  • ¥60 PCDN如何使用宽带的电视业务通道拨号叠加带宽?
  • ¥15 遇到这种校园宽带网络应该怎么样解决?
  • ¥30 AXI VIP验证多余打印问题
  • ¥15 利用加权最小二乘法求某品牌手机价格指标,已按照总销量计算出权重,各类型号手机价格已知,如何求得价格指标?
  • ¥15 如何自制一个硬件钱包,有兴趣的朋友一起交流
  • ¥15 (关键词-聊天软件)
  • ¥15 求大家看看这个编程的编法没有思路啊
  • ¥20 WSL打开图形化程序子窗口无法点击
  • ¥15 Jupyter Notebook 数学公式不渲染
  • ¥20 ERR_CACHE_MISS 确认重新提交表单