字典翻译 问答 高中 数学 求幸运数C/C++代码?幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的“筛法”生成.首先从1开始写出自然数1,2,3,4,5,6,.1就是第一个幸运数.我们从2这个数开始.把所有序号能被2整除的
问题标题:
求幸运数C/C++代码?幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的“筛法”生成.首先从1开始写出自然数1,2,3,4,5,6,.1就是第一个幸运数.我们从2这个数开始.把所有序号能被2整除的
问题描述:

求幸运数C/C++代码?

幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的“筛法”生成.

首先从1开始写出自然数1,2,3,4,5,6,.

1就是第一个幸运数.

我们从2这个数开始.把所有序号能被2整除的项删除,变为:

1_3_5_7_9.

把它们缩紧,重新记序,为:

13579..这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去.注意,是序号位置,不是那个数本身能否被3整除!删除的应该是5,11,17,...

此时7为第3个幸运数,然后再删去序号位置能被7整除的(19,39,...)

最后剩下的序列类似:

1,3,7,9,13,15,21,25,31,33,37,43,49,51,63,67,69,73,75,79,...

本题要求:

输入两个正整数mn,用空格分开(m

李树华回答:
  static void isPrime(int start, int a[], int len)   {   x09int k = start, num = a[start];   x09for (int i = k; i < len; i++)   x09{   x09x09if (i%num != 0) a[k++] = a[i];   x09}   x09if (num < len)isPrime(start + 1, a, k);   }   int main()   {   x09int len = 100,kinds=0,a[100];   x09int n=20,m=1;   x09cin>> m >> n ;   x09for (int i = 1; i < len; i++) a[i] = 2 * i - 1;   x09isPrime(2, a, len);   x09for (int i = 1; i<len; i++)   x09{   x09x09if (a[i]>m && a[i] < n) kinds++;   x09x09if (a[i] >= n) break;   x09}   x09cout << kinds << endl;   x09return 0;   }
点击显示
数学推荐
热门数学推荐
  • 语文
  • 数学
  • 英语
  • 政治
  • 地理
  • 历史
  • 化学
  • 生物
  • 物理
  • 综合
  • 高考