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

Posted 小大大小

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }

 

以上是关于C语言:输入一个数,输出比这个数小的所有素数,并求出个数。的主要内容,如果未能解决你的问题,请参考以下文章

C语言编程,求大神解释错误在哪?程序要求是:输入一个数,再输出比这个数大的第四个素数。附我的代码!

逆序数还原c语言 输入数组 2 0 1 0 0 输出原序数 3 1 4 2 5

POJ 3518 Prime Gap(素数)

C语言输入一个数n,输出n以内所有的回文素数.回文素数,即是素数,又是回文数

C语言快速排序

如何 用c语言 实现输入不定数目的一行整数