输入一个正整数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;
}