国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

幸運數,c語言幸運數,算法比賽題

2019-11-06 06:20:44
字體:
來源:轉載
供稿:網友

首先先描述題目

標題:幸運數    幸運數是波蘭數學家烏拉姆命名的。它采用與生成素數類似的“篩法”生成。    首先從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, ...

我這里寫的代碼 沒有遵守題目要求 , 而是把所有的 1-n 之間的幸運數輸出并計算個數

1 不算幸運數

就這個題而言 我們可以運用篩選法的原理 也就是素數打表的思想 來解決

  如果序號可以整除的話 就讓對應的位置賦值為0  然后下次循環 進行篩選不為0 的下一項

下面的源代碼

/* 幸運數  */#include<stdio.h>#include<string.h>const int N=1000;int a[N];int n,m;void input(){	for(int i=1;i<=n;i++)		a[i]=i;}void output(){	int i,ans=0;	for(i=m;i<n;i++)		if(a[i]){			PRintf("%d ",a[i]);			if(i==1) continue;			ans++;		}			printf("/n");	printf("%d/n",ans);}void Luckly_Num(){	int i,j,k,cout,temp,sum=1;	for(i=2;i<=n;i++)	{		if(!a[i])			continue; //		for(k=i;a[k]==0;k++)//			 sum++;		temp=a[i];		for(j=1,cout=0;j<=n;j++)		{			if(a[j])			{				cout++;				if(cout%temp==0)				{					a[j]=0;				}					}		}	}}int main(){	int i,j;	while(scanf("%d %d",&m,&n))	{				input();//3?ê??ˉ		Luckly_Num(); //o?D? 		output();// ê?3? 	}}

我這里把整個運行步驟給輸出出來了:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 白朗县| 林甸县| 九江县| 永州市| 印江| 高雄市| 蓬莱市| 新安县| 陇西县| 高安市| 临沂市| 瑞丽市| 南皮县| 永安市| 隆化县| 合肥市| 巫溪县| 土默特右旗| 进贤县| 江门市| 论坛| 禄丰县| 台江县| 青川县| 会宁县| 加查县| 四子王旗| 鸡西市| 克东县| 格尔木市| 甘孜县| 云阳县| 旬阳县| 永嘉县| 扬中市| 张家港市| 当阳市| 东宁县| 工布江达县| 葵青区| 北流市|