素数口袋(c语言),从小到大求素数

输入一个正整数L,表示最大承载量
输出包括两行,第一行从小到大输出能装下的所有素数,数与数之间用空格隔开,第二行输出count=素数个数

int isprime(int n)
{
      int i;
      if(n<=1)
          return 0;
      for(i=2;i*i<=n;i++)
            if(n%i==0)
                return 0;
      return 1;
}
int main()
{
    int L,i,count = 0;
    scanf("%d",&L);
    for(i=2;i<=L;i++)
        if(isprime(i))
        {
             printf("%d ",i);
             count++;
        }
    printf("\ncount=%d",count);
    return 0;
}

就是定义一个长度为L的数组存素数,每找到一个素数就往里放,放满了就输出呗

#include <stdio.h>
int main()
{
    int L,i,j;
    int sum = 0,cnt = 0;
    scanf("%d",&L);
    for (i = 2;;i++)
    {
        for(j=2;j<i;j++)
        {
            if(i%j == 0) break;
        }
        if(j==i)
        {
            if(sum + i <=L)
            {
                sum += i;
                cnt++;
                printf("%d ",i);
            }else
                break;
            
        }
    }
    printf("\n%d",cnt);
    return 0;
}