滑稽张峻铭 发表于 2020-8-12 15:24:29

出错了

#include <stdio.h>

int main()
{
    int k,j,s,g,m;
    printf("a");
    scanf("%d",&k);
    long long q;
    long long a;
    m = 0;
    a = 0;
    printf("%d\n",a);
    while (k != 1)
    {
      j = k--;
      m = 0;
      for(s = 1;j != s;j--)
      {
            if (((k + 1) % j == 0))
            {
                printf("%d,%d,[%d],%d\n",j,k,q,a);
                m++;
            }
      }
      if (m <= 2)
      {
            q = j;
            a++;
      }
    }
    return 0;
}
求k及k-1,2,3,4...的所有素数

baige 发表于 2020-8-12 15:39:15

本帖最后由 baige 于 2020-8-12 15:44 编辑

问题很多,是k到0的素数吗?还是什么,题目描述不是很清楚,

滑稽张峻铭 发表于 2020-8-12 15:45:23

baige 发表于 2020-8-12 15:39
问题很多,是k到0的素数吗?还是什么,题目描述不是很清楚,

是的

baige 发表于 2020-8-12 15:50:09

#include <stdio.h>
#include <math.h>

int main()
{
        int k;
        printf("k = ");
        scanf("%d",&k);
       
        for(int i = k; i >= 2; --i)
        {
                int flag = 1;//模拟布尔类型
                for(int j = 2; j <= sqrt(i); ++j)
                {
                        if(i%j==0)
                        {
                                flag = 0;
                                break;
                        }       
                }
                if(flag)
                {
                        printf("%d\n",i);
                }
        }
        return 0;
}

滑稽张峻铭 发表于 2020-8-12 15:54:21

baige 发表于 2020-8-12 15:50


谢谢

baige 发表于 2020-8-12 15:54:51

首先我们要知道素数的求法,当number满足从2到根号number没有数可以整除,它就是素数,
从k到0的素数我们从k开始遍历,到k=2,当k<2的数不会是素数,所以不需要到2以下,
k到0的素数个数,一般不会是k个,大多数都只会小于k个数
而且对于数组,我们要先赋值,在输出

baige 发表于 2020-8-12 15:55:26

滑稽张峻铭 发表于 2020-8-12 15:54
谢谢

我觉得你可以发一下完整的题目,我看一下
页: [1]
查看完整版本: 出错了