问题标题:
求幸运数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;
}
点击显示
数学推荐
热门数学推荐