freemandj 2019-12-01 12:51 采纳率: 100%
浏览 714
已采纳

我写了一个,但答案不对(每行不到十个就换行了),希望帮忙改一下,谢谢

7-10 输出2到n之间的全部素数 (20 分)
本题要求输出2到n之间的全部素数,每行输出10个。素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。

输入格式:
输入在一行中给出一个长整型范围内的整数。

输出格式:
输出素数,每个数占6位,每行输出10个。如果最后一行输出的素数个数不到10个,也需要换行。

输入样例:
10
输出样例:
2 3 5 7

这是我写的

    #include<stdio.h>

#include
long int sushu(long int n);
int main()
{
long int i,number,count=0;
scanf("%d",&number);
for(i=2;i<=number;i++)
{
if(sushu(i)==1)
printf("%6d",i);
count++;
if(count%10==0){
printf("\n");}
}
if(count%10!=0)
printf("\n");
}
long int sushu(long int n)
{
int i;
float pf;
pf=sqrt(n);
for(i=2;i<=pf;i++)
{
if(n%i==0||n==1)
return 0;

}
if(i>pf)
return 1;
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-12-01 12:56
    关注
    #include<stdio.h>
    #include<math.h>
    long int sushu(long int n);
    int main()
    {
    long int i,number,count=0;
    scanf("%d",&number);
    for(i=2;i<=number;i++)
    {
    if(sushu(i)==1){
    printf("%6d",i);
    count++;
    if(count%10==0)
    printf("\n");
    }
    }
    }
    long int sushu(long int n)
    {
    int i;
    float pf;
    pf=sqrt((double)n);
    for(i=2;i<=pf;i++)
    {
    if(n%i==0||n==1)
    return 0;
    
    }
    if(i>pf)
    return 1;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?