一念错·误终身


私信TA

用户名:uq_17083289882

访问量:1604

签 名:

等  级
排  名 15990
经  验 773
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

基于算术基本定理
注意事项:

参考代码:

#include<bits/stdc++.h>
int main(){
	long long n,ans = 0,index;
	int sum;
	scanf("%lld",&n);
	for(index = 2;index * index <= n && n != 1;index++){ //index * index <= n这个条件是重点,如果没有这个条件会超时
		sum = 0;
		while(n % index == 0){
			sum++;
			n /= index;
		}
		if(sum){
			ans++;
		}
	}
	if(n != 1){
		ans++; //说明存在一个大于sqrt(n)的质因数,且有且仅有一个,所以要+1
	}
	printf("%lld",ans);
	return 0;
}


 

0.0分

12 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区