程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU1215--七夕節

HDU1215--七夕節

編輯:C++入門知識

找出小於N的所有因子的和,N比較大,很明顯要打表來做,不然肯定會超時

方法就是枚舉范圍內每個整數,然後再枚舉范圍內這個整數的所有的倍數,加上這個數

因為這個整數的倍數中一定含有這個整數因子,這樣速度比枚舉判斷是否%==0快的多

如果用取余來判斷會超時,另外同樣的方法如果用cin,cout來輸入輸出一樣也會超時

最好采用c語言的輸入輸出的格式

貼一下自己的代碼哈

#include 
using namespace std;
const int MAXN = 500000;
int a[MAXN];
int main()
{
#ifdef LOCAL
	freopen("input.txt" , "r" , stdin);
#endif
	for(int i=2; i<=MAXN; ++i)
	{
		for(int j=2; j*i<=MAXN ;++j)
		{
			a[j*i] += i;
		}
	}
	int T;
	scanf("%d" , &T);
	while(T--)
	{
		int n;
		scanf("%d" , &n);
		printf("%d\n" , a[n]+1);
	}
	return 0;
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved