小素数

小素数

#include <stdio.h>
#define MAXNUM 500000 //求1000以内的所有素数
int x(int a)
{
   int b=0;
   int i;
   for(i=0;;i++)
   {
      if(a!=0)
      {
          a=a/2;
          b++;
      }
      else
        break;
    }
    return b;
}
int main(int n, int *plist, int *len)// 其中plist返回素数列表,len返回列表长度
{
    int i, j;
    int plist[MAXNUM+1];//定义一个数组用来保存素数
    for (i=2;i<=MAXNUM;i++)
    {
        plist[i] = 1;
    }
    for (i=2;i*i<=MAXNUM;i++)//循环处理前i个
    {
        if (plist[i]==1)//若为素数,则进行筛选
        {
           for (j=2*i; j<=MAXNUM; j++)
           {
               if (plist[j]==0)//去掉合数
               {
                   continue;
                }

               if (j%i==0)//若不是素数,则是合数,将素数的标志更改为0
               {
                  plist[j]=0;
                }
            }
        }       
    }
printf("请输入你想要的bit数:");
int m;
scanf("%d",&m);
    for (i=2;i< MAXNUM;i++)//输出素数的值和个数
    {
       if (plist[i]==1&&n==x(i))
       { 
           printf("%10d",i);
           len++;
           if (len%10 == 0)   printf("\n");
        }
    }
        printf("素数个数len=%d",len);
        return 0;
}

int main()
{
    int n;
    printf("请输入生成素数的上限:\n");
    scanf("%d",&n);
    SmallPrimeList(int n, int *plist, int *len);
}

posted @ 2022-06-09 14:44  绒绒的欧嘛harper  Views(22)  Comments(0Edit  收藏  举报
*/