牛客练习赛25 A 因数个数和

题目传送门
代码:

#include
using namespace std;

int main(){
	
	int q;
	scanf("%d",&q);
	while(q--){
		
		int n;
		scanf("%d",&n);
		long long cnt=0;
		int m=(int)sqrt(n);
		for(int i=1;i<=m;i++) cnt+=n/i;
		for(int i=n/m-1;i>=1;i--) cnt+=(long long)(n/i-n/(i+1))*i;
		printf("%lld\n",cnt);
	}
} 

你可能感兴趣的:(牛客网,ACM)