浮⇔沉 2022-02-19 15:53 采纳率: 100%
浏览 66
已结题

有关c语言孪生素数对问题

编译运行后没有任何输出

img

img


看了半天不知道哪里有问题,还请网友指出

  • 写回答

2条回答 默认 最新

  • a5156520 2022-02-19 16:28
    关注

    下面是我的理解,供参考:
    有两个地方,一是if(k=0)改为if(k==0),因为是需要判断是否k为0,即是否为满足孪生素数对的条件。
    二是把 修改后的if(k==0) printf("%ld,%ld\n",t,t+2); 移到内层的for循环后面,以免产生两次孪生素数对的输出。
    修改后如下:

    #include <stdio.h>
    #include <math.h>
    
    int main(void){
        long int m,n,i,t,k;
        printf("请输入两个数:");
        scanf("%ld,%ld",&m,&n);
        if(m%2==0){
            m++;
        } 
        
        for(t=m;t<=n;t+=2){
            for(i=3,k=0;i<=sqrt(t);i+=2){
                if(t%i==0){
                    k=1;
                    break;
                }
                if((t+2)%2==0){
                    k=1;
                    break;
                }
                
                
            }
            
            if(k==0){
                    printf("%ld,%ld\n",t,t+2);
                }
                
        }
        
        return 0;
    } 
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月27日
  • 已采纳回答 2月19日
  • 创建了问题 2月19日