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 }

 

转载于:https://www.cnblogs.com/ming-4/p/10426877.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值