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("\n ");
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,"\n");
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("\n ");
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,"\n");
45       fprintf(wf,"%5d ",aa[i]);
46     }
47   fclose(wf);
48 /*****************************/
49 }

 

posted @ 2019-02-24 17:12  小大大小  阅读(2865)  评论(0编辑  收藏  举报