列表

详情


NC229685. 模板题【线性筛求积性函数】

描述

求正整数 n 的所有正因数的个数,q 次询问。

输入描述

第一行一个正整数 
第二行到第 行,每行一个正整数

输出描述

对于每个询问,输出一个正整数。两个答案间用空行分隔。

示例1

输入:

5
1
2
3
4
5

输出:

1
2
2
3
2

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(clang++ 11.0.1) 解法, 执行用时: 774ms, 内存消耗: 672K, 提交时间: 2022-12-06 16:15:28

#include<bits/stdc++.h>
using namespace std;
int s,i,j;
void sum(int n){
	j=0;
	s=0;
	if(n==1)s=1;
	else{
	for(i=1;i*i<=n;i++){
		if(n%i==0){
			s++;
		}
		if(i*i==n)j=1;
	}
	s*=2;
	if(j)s-=1;
	}
	cout<<s<<endl;
}

int main(){
	int q,n;
	cin>>q;
	while(q--){
		cin>>n;
		sum(n);
	}
	return 0;
}

上一题