回 帖 发 新 帖 刷新版面

主题:C语言(求教导!)

 

输入区间[a,b],请编程计算出该区间的最小和最大素数

#include <stdio.h>
void main()
{int a,b,flag,j,min,max;
scanf ("%d,%d",&a,&b);
j=2;flag=0;
if(j<=a)
{for(;j<=a;j++)
if(a%j==0)
flag++;
}
if(flag==1)
{printf("min=%d",a);}
else a++;
},编的只能运行一个数,怎么弄,才能运行到最后,得到最小素数呢,求高手教导

回复列表 (共2个回复)

沙发


把求最小值的方法 反过来计算就可以求最大值

板凳

临时写了一下  可能我写的有点麻烦了  可能会有更好的算法  就是给你提供一个思路  
#include <stdio.h>

void primer_min(int a,int b)
{
    int i,j;
    int flag,count=0;
    for(i=a;i<=b;i++)
    {        flag=1;
    for(j=0;j<=i/2;j++)
    {
        if(i%j==0)
        {
            flag=0;
            break;
        }
        
    }
    if(flag==1)
    {    
        count++;
        if(count==1)
            printf("min=%d",i);    
    }
    }    
}

void primer_max(int a,int b)
{
    int i,j;
    int flag,count=0;
    for(i=b;i>=a;i--)
    {    flag=1;
    for(j=0;j<=i/2;j++)
    {
        if(i%j==0)
        {
            flag=0;
            break;
        }
        
        
    }
    if(flag==1)
    {    
        count++;
        if(count==1)
            printf("max=%d",i);    
    }
    }    
}        

int main()
{
    int a,b;
    
    printf("请输入范围(最小值 ) :");
    scanf ("%d",&a);
    printf("请输入范围(最大值 ) :");
    scanf ("%d",&b);
  if(a<b)
    {
        primer_min(a,b);
        primer_max(a,b);
    }    
    return 0;
}[color=0000FF][/color]

我来回复

您尚未登录,请登录后再回复。点此登录或注册