Made in heaven!! 2022-04-23 10:33 采纳率: 80%
浏览 18
已结题

10000以内素数打印,从大到小,找出十个,帮找BUG

#include "stdio.h"
#include "math.h"
void main(void)
{
int prime,count=0,i,flag=1;
for(prime=10000;prime>1;prime--)
{
for(i=2;i<sqrt(prime*1.0)+1;i++)
{
if(prime%i==0)
{
flag=0;
break;
}
}
if(flag==1)
{
printf("%d\n",prime);
count++;
}
if(count==9)
break;
}
getch();
}

  • 写回答

1条回答 默认 最新

  • 吕布辕门 后端领域新星创作者 2022-04-23 10:43
    关注

    你好,望采纳!
    加了详细注释,下面配置打印的个数
    if(k>10){//到10个后退出
    break;
    }

    #include<stdio.h>
    int main()
    {
        int i,j,k=0;//i是2-10000待确认是否为素数的数,j表示i的因子,k表示素数的个数
        for(i=2;i<10000;i++)
        {
            for(j=2;j*j<=i;j++)
            {
                if(i%j==0)//判断i是否能被1和本身以外的数整除,%表示求余
                break;//break跳出第二个for循环
            }
            if(j*j>i)
            {
                printf("%d ",i);
                k++;//每增加一个素数k就加1
              if(k>10){//到10个后退出
                 break;
                }
                if(k%10==0)//一行打印10个数之后换行
                {
                    printf("\n");
                }
            }
        }
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月1日
  • 已采纳回答 4月23日
  • 修改了问题 4月23日
  • 创建了问题 4月23日

悬赏问题

  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 个人网站被恶意大量访问,怎么办
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大