Babylanyon 2020-11-29 20:20 采纳率: 55.6%
浏览 237
已采纳

求解||打印出从1-n的所有素数?c语言?

原题是这样的

1)输入正整数n;

    2)判断1-n之间有多少个素数,并输出所有素数。

    3)每行输出10个素数,每个素数输出格式使用“%-5d”(宽度5位,数据左对齐);

    4)最后打印该区间共有多少个素数(“%d”)。

下面是我写的代码,请问哪里出问题了/?

#include<stdio.h>
#include<math.h>
int main ( )
{
    int a,n,i,k,m=0;
    scanf("%d",&a);
     for(n=1;n<=a;n+=2)
     {
         k=sqrt(n);
         for(i=2;i<=k;i++)
             if(n%i==0)break;
         if(i>=k+1)
         {
             printf("%-5d",n);
             m=m+1;
         }
         if(m%10==0)printf("\n");
     }
     printf("\n");
     printf("The total is %-5d\n",m);
     return 0;
}
  • 写回答

2条回答 默认 最新

  • qq_25376897 2020-11-30 10:50
    关注
    #include <stdio.h>
    
    int main ( )
    {
        int x,n,i=2,j,m=0;
        scanf("%d",&n);
        if(n<=1){ //1不是素数,也不是合数
            printf("The total is %-5d\n",m);
            return 0;
        }
        for(int i=2;i<=n;i++){
            x = i;
            //1、x是2(2是素数),x/2等于1,不会进入for循环,同时满足j*1.0>x*1.0/2
            //2、x是大于2的偶数(大于2的偶数都不是素数),必有x%2 == 0,j是2,不满足j*1.0>x*1.0/2
            //3、x是大于2的奇数,x/2必然是小数,如果x%j == 0,则j*1.0<x*1.0/2,不满足j*1.0>x*1.0/2;
            //如果x%j == 0都不成立,由于j是整数,且j*1.0 < x*1.0/2,i++导致最后会j*1.0>x*1.0/2,此时是素数
            for (j = 2;j*1.0 < x*1.0/2;j++){
                if(x%j == 0){
                    break;
                }
            }
            
            if(j*1.0>x*1.0/2){ //满足该条件的就是素数
                printf("%-5d",x);
                m++;
                if(m%10==0){
                    printf("\n");
                }
            }
        }
        if(m%10!=0){
            printf("\n");
        }
        
        printf("The total is %-5d\n",m);
        
        return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱