解题思路:
基于算术基本定理
注意事项:
参考代码:
#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 人评分
Pascal三角 (C语言代码)浏览:1188 |
妹子杀手的故事 (C语言代码)浏览:1234 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:691 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:326 |
DNA (C语言代码)浏览:540 |
1048题解(读入回车问题)浏览:565 |
C二级辅导-温度转换 (C语言代码)浏览:731 |
A+B for Input-Output Practice (I) (C语言代码)浏览:431 |
众数问题 (C语言代码)浏览:673 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:775 |