输入两个整数,输出两个数之间的素数

img

img


不知道哪一步出现了问题,很困扰啊,唉,带带我这个把,求解,凑字数,一,二,三,四,五

#include <stdio.h>
int main()
{
    int m,n,count =0,j;
    scanf("%d%d",&m,&n);
    for(int i=m;i<=n;i++)
    {
        if(i<2)
           continue;
        for(j=2;j<i;j++)
        {
            if(i%j==0)
                break;
        }
        if(j==i)
        {
            count++;
            printf("%d ",i);
        }
    }
    if(count==0)
        printf("Not Found");
}

问题有点多
1.printf("%d",&i);//&是取地址符,在这打印的是i的地址所以要去掉&变成printf("%d",i);
2.if(i%j==0){printf..........break;}//if语句后面不加大括号默认只有下一个语句为子程序。而且j<i,应该要反过来,得到的是非素数
下面贴另一个方法的:

#include <stdio.h>
int prime(int x,int y);
int main()
{
    int a,b;
    printf("please input two numbers \n");//从小到大
    scanf("%d %d",&a,&b);//两个数用空格隔开
    prime(a,b);//调用函数
    return 0;
}
int prime(int x,int y)
{
    int i,j,k,cout;
    cout=0;
    for(i=x;i<=y;i++)//从最大的数到最小的数
    {
        k=1;
        for(j=2;j<=i/2;j++)
        {
            if(i%j==0)      //非素数
            {
                k=0;
                break;
            }
        }
            if(k)//素数
            {
                printf("%d \n",i);//素数打印出来
                cout++;      //统计素数的个数
            }
    }
    printf("there are %d numbers from %d to %d \n",cout,x,y);
    return 0;
}

下次程序的不要拍照😭看的难受不说还难调试,尽量用代码块或者复制粘贴也行