djdgf4 发表于 2022-4-5 21:28

分行输出素数,每行五个,输出错误

本帖最后由 djdgf4 于 2022-4-6 12:55 编辑

#include <stdio.h>
#include <math.h>
int main()
{
    int n,i,k,m=0;
    for(n=2;n<1000;n++)
    {
      k=sqrt(n);
      for(i=2;i<=k;i++)
      {   if(n%i==0)break;
      if(i>=k+1)
            printf("%d\t",n);
            m=m+1;
      if(m%5==0) printf("\n");
      }   
    }
   
    return 0;
}

输出结果显示?
2       3       5
7       11      
13
17      19      
23
29      31      

37      41      
43
47
53
59      61      

67      71      
73
79
83
89

……



907   911

919

929

937   941

947
953


967   971

977
983
991

997

yann66 发表于 2022-4-5 21:55

#include <stdio.h>
#include <math.h>
int main()
{
    int n,i,k,m=0;
    for(n=2;n<1000;n++)
    {
      k=sqrt(n);
      for(i=2;i<=k;i++)
      {
                        if(n%i==0)
                                break;
                }
               
      if(i>=k+1)
                {
            printf("%d\t",n);
            m=m+1;
               
      if(m%5==0)
                        printf("\n");
         
    }}
   
    return 0;
}

Goldrepo 发表于 2022-4-5 22:10

这里没有花括号包住,导致不管满不满足,每次m都会+1

unmask 发表于 2022-4-5 23:35

用一种更效率的算法(埃氏筛选法):

#include <stdio.h>

#define N 1000

int main()
{
    int isPrime, count = 0;
    for (int i = 2; i <= N; i++)
      isPrime = 1;

    for (int i = 2; i <= N; i++)
    {
      if (isPrime)
      {
            printf("%d\t", i);
            if (++count % 5 == 0)
                printf("\n");

            for (int j = i * 2; j <= N; j += i)
                isPrime = 0;
      }
    }
    return 0;
}

yzmx 发表于 2022-4-6 09:05

本帖最后由 yzmx 于 2022-4-6 09:10 编辑

#include <stdio.h>
#include <math.h>
int main()
{
    int n,i,k,m=1;
    for(n=2;n<1000;n++)
    {
      k=sqrt(n);
      for(i=2;i<=k;i++){   
              if(n%i==0) break;
      }
                if(i>=k+1){
              printf("%d\t",n);
                 m=m+1;
               }
      if(m%6==0) {
              printf("\n");
              m=1;
                }
    }
    return 0;
}
页: [1]
查看完整版本: 分行输出素数,每行五个,输出错误