C语言 求出100到200以内最大的素数 最小的素数 以及所有素数的和 用while语句实现

不是用while语句实现!!!是编写素数函数并使用它进行编程!!!

#include <stdio.h>
int issu(int);
int main()
{
    int i,sum=0,min=999,max=0;
    for(i=100;i<=200;i++)
    {
        if(issu(i))
        {
            sum=sum+i;
            if(i<min)
                min=i;
            if(i>max)
                max=i;
        }
    }
    printf("最大素数=%d,最小素数=%d,素数和=%d",max,min,sum);
return 0;
}
int issu(int num) //判断一个数是否是素数 是返回1  否返回0
{
    int i;
    for(i=2;i<num;i++)
    {
        if(num%i==0)
        {
            return 0;
        }
    }
    return 1;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-06

#include<stdio.h>

int prime(int n) {
int i,flag = 1;
if(n < 2) return 0;
for(i = 2; i <= n/2 && flag; ++i)
flag = n%i;
return flag;
}

int main() {
int minprime = 200,maxprime = 100,m,sum = 0;
m = 100;
while(m <= 200) {
if(prime(m)) {
sum += m;
if(m < minprime)
minprime = m;//最小素数
if(m > maxprime)
maxprime = m;//最小素数
}
++m;
}
printf("最小素数:%d\n最大素数:%d\n素数和:%d\n",minprime,maxprime,sum);
return 0;
}

本回答被提问者和网友采纳
第2个回答  2017-12-06

#include <stdio.h>
int isprime(int n)
{for(int i=2;i*i<=n;i++)
   if(n%i==0)return 0;
 return 1;  
}
int main()
{int i=101,s=0,max=199,min=101;
 while(!isprime(max))max-=2;
 while(!isprime(min))min+=2;
 while(i<200)
   {if(isprime(i))s+=i;
    i+=2;
   }
 printf("100到200以内\n最大的素数=%d\n最小的素数=%d\n所有素数的和=%d\n",max,min,s);
 return 0;
}

第3个回答  2017-12-06
#include <stdio.h>
int isprime(int n)
{
    int i=3;
    while(i*i<=n)
    {
        if(n%i==0) return 0;
        i+=2;
    }
    return 1;  
}
int main()
{
    int n=101, max=100, min=210, sum=0;
    while(n<200)
    {
        if(isprime(n))
        {
            if(max<n) max=n;
            if(min>n) min=n;
            sum+=n;
        }
        n+=2;
    }
    printf("min=%d max=%d sum=%d\n", min, max, sum);
    return 0;
}

函数 while 都有了.

第4个回答  2017-12-06
所有素数的和 是指“100到200以内所有素数的和”吗?追问

是的!!