C語言實現「幸運數」的例項詳解

2022-10-04 00:51:11 字數 1115 閱讀 4991

c語言實現「幸運數」的例項詳解

1、題目:

標題:幸運數

幸運數是波蘭數學家烏拉姆命名的。它採用與生成素數類似的「篩法」生成。 首先從1開始寫出自然數1,2,3,4,5,6,…. 1 就是第乙個幸運數。 我們從2這個數開始。把所有序號能被2整除的項刪除,變為: 1 _ 3 _ 5 _ 7 _ 9 …. 把它們縮緊,重新記序,為: 1 3 5 7 9 …. 。這時,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, … 本題要求: 輸入兩個正整數m n, 用空格分開 (m < n < 1000*1000) 程式輸出 位於m和n之間的幸運數的個數(不包含m和n)。 例如: 使用者輸入: 1 20 程式輸出: 5 例如: 使用者輸入: 30 69 程式輸出: 8

資源約定: 峰值記憶體消耗(含虛擬機器) < 64m cpu消耗 < 2000ms

2、**實現:

/*2023年12月20日23:01:47

幸運數統計

*/# includezynewtdio.h>

# define max 50000

int create_luck(int * );

int num_luck(int *,int,int,int);

int main(void)

; int max,n,i;

int num1,num2;/*標定範圍*/

max = create_luck(luck);/*幸運數生成*/

scanf("%d%d",&num1,&num2);

n = num_luzynewck(luck,max,num1,num2);/*計算num1到num2之間的幸運數個數*/

printf("%d\n",n);

/*for(i=0;i數

}*/return 0;

}int create_luck(int * luck)

return n;

}3、運**況:

c語言峰值演算法 C語言實現「幸運數」的例項詳解

c語言實現 幸運數 的例項詳解 1 題目 幸運數是波蘭數學家烏拉姆命名的。它採用與生成素數類似的 篩法 生成。首先從1開始寫出自然數1,2,3,4,5,6,1 就是第乙個幸運數。我們從2這個數開始。把所有序號能被2整除的項刪除,變為 1 3 5 7 9 把它們縮緊,重新記序,為 1 3 5 7 9 ...

詳解C語言實現strcat

strcat 庫函式的原型如下 char strcat char dest,const char src 主要作用是把src指向的字串追加到dest指向的字串上。明白了這個作用之後我們就可以自己開始編寫實現這個函式。至於為什麼要自己編寫這個函式,面試的時候面試官就是想要這麼做,你想要這份offer的...

KMP演算法詳解(C語言實現)

kmp的演算法分析 kmp解決問題 清除bf演算法中主串s指標出現的回溯情況,即當主串s和子串t在某個字元不匹配的時侯,主串s的指標位置不變,改變子串t的指標位置,使主串和子串的字元匹配 演算法思路 建立乙個next陣列,當出現主串字元與子串字元不匹配時,將模式串t的指標 j 移動到next j 的...