清华大学机试 约数的个数 Easy *需要注意

https://www.nowcoder.com/practice/04c8a5ea209d41798d23b59f053fa4d6?tpId=40&tqId=21334&tPage=1&rp=1&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking

基本思想:

注意一下,和质因子分解思路不同,非质数也要放在内;

 

关键点:

还是折半对称查找,自己也推出来了;

 

#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
#include<cmath>
#include<set>
using namespace std;

int n,m;

void charge(int x) {
	int sqr =sqrt(x);
	int cnt=0;
	for (int i = 1; i <= sqr; i++) {
		if (x%i == 0) {
			cnt++;
		}
	}
	cout << cnt*2 << endl;
}

int main() {
	while (cin>>n){
		for (int i = 0; i < n; i++) {
			cin >> m;
			charge(m);
		}
	}
	return 0;
}

  

posted @ 2020-02-29 20:49  暮云林凌  阅读(176)  评论(0)    收藏  举报