• C语言:输入一个数,输出比这个数小的所有素数,并求出个数。


    //C语言:输入一个数,输出比这个数小的所有素数,并求出个数。

     1 #include<conio.h>
     2 #include<stdio.h>
     3 #include<stdlib.h>
     4 #define MAX 100
     5 int fun(int lim, int aa[MAX])
     6 {
     7     int i, j,k=0;
     8     for (i = 2; i <= lim; i++)//罗列每个数
     9     {
    10         for (j = 2; j < i; j++)//判断是否为质数(素数:只可以被1和本身整除,必须大于1)
    11         {
    12             if (i%j == 0)    break;
    13         }
    14         if (j >= i)    aa[k++] = i;
    15     }
    16     return k;
    17 }
    18 void main()
    19 {
    20   FILE *wf;
    21   int limit,i,sum;
    22   int aa[MAX];
    23   system("CLS");//清屏
    24   printf("输入一个整数:");
    25   scanf("%d",&limit);
    26   sum=fun(limit,aa);        
    27   for(i=0;i<sum;i++)
    28      {
    29       if(i%10==0&&i!=0)    /*每行输出10个数*/
    30          printf("
     ");
    31       printf("%5d ",aa[i]);
    32     }
    33 /******************************/
    34   wf=fopen("out.dat","w");
    35   sum=fun(15,aa);        
    36   for(i=0;i<sum;i++)
    37      {
    38       if(i%10==0&&i!=0)    /*每行输出10个数*/
    39          fprintf(wf,"
    ");
    40       fprintf(wf,"%5d ",aa[i]);//向文件中写入。
    41     }
    42   fclose(wf);
    43 /*****************************/
    44 }

    另一种方法:使用标志位。切记要进行标志位的复原。

     1 #include<conio.h>
     2 #include<stdio.h>
     3 #include<stdlib.h>
     4 #define MAX 100
     5 int fun(int lim, int aa[MAX])
     6 {
     7     int i,a=0,j=0;
     8     while (lim > 1)
     9     {
    10         for (i = 2; i < lim; i++)
    11         {
    12             if (lim%i == 0)    a = 1;
    13         }
    14         if (a == 0)
    15         {
    16             aa[j++] = lim;
    17         }
    18         a = 0;//切记使用标志位要记得复位。
    19         lim--;
    20     }
    21     return j;
    22 }
    23 void main()
    24 {
    25   FILE *wf;
    26   int limit,i,sum;
    27   int aa[MAX];
    28   system("CLS");
    29   printf("输入一个整数:");
    30   scanf("%d",&limit);
    31   sum=fun(limit,aa);        
    32   for(i=0;i<sum;i++)
    33      {
    34       if(i%10==0&&i!=0)    /*每行输出10个数*/
    35          printf("
     ");
    36       printf("%5d ",aa[i]);
    37     }
    38 /******************************/
    39   wf=fopen("out.dat","w");
    40   sum=fun(15,aa);        
    41   for(i=0;i<sum;i++)
    42      {
    43       if(i%10==0&&i!=0)    /*每行输出10个数*/
    44          fprintf(wf,"
    ");
    45       fprintf(wf,"%5d ",aa[i]);
    46     }
    47   fclose(wf);
    48 /*****************************/
    49 }
  • 相关阅读:
    HDU 5495:LCS
    关于使用了cudaMallocHost之后发生 segment fault的原因
    关于grub 损坏的问题
    LightOJ
    LightOJ
    poj3268--Silver Cow Party (最短路+技巧)
    hdoj1443--Joseph (约瑟夫环)
    poj2549--Sumsets (sum)
    UVA11080
    hdoj1548--A strange lift(bfs.)
  • 原文地址:https://www.cnblogs.com/ming-4/p/10426877.html
Copyright © 2020-2023  润新知