解题思路:
基于算术基本定理
注意事项:
参考代码:
#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 人评分
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:568 |
母牛的故事 (C语言代码)浏览:1298 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:638 |
简单的a+b (C语言代码)浏览:644 |
人见人爱A+B (C语言代码)浏览:625 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:464 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:703 |
蚂蚁感冒 (C语言代码)浏览:1319 |
小O的图案 (C语言代码)浏览:912 |
1392题解(大数相加)浏览:601 |