2016秋季练习
来源:互联网 发布:linux运维会被云取代吗 编辑:程序博客网 时间:2024/06/11 04:13
来源:lightOJ1028
为了节约时间,先处理处所有的素数,但是注意不要进行素因子分解,因为没有必要,而且这个步骤浪费时间,直接不断的去除就好了
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;typedef long long LL;const int N = 1e6+10;const int MAXN = 1e6+10;LL n;LL p[MAXN];bool vis[N];//int nn[MAXN];int cnt;void init(){ cnt = 0; memset(vis,false,sizeof vis); for(int i=2;i<N;i++) {// cout<<"i = "<<i<<endl; if(!vis[i]) p[cnt++] = i; for(int j=0;j<cnt && p[j]*i<N ; j++){// cout<<"j = "<<j<<endl; vis[i*p[j]] = 1; if(i % p[j] == 0) break; } }}int main(){ init(); int T,nc = 1; scanf("%d",&T); while(T--){ scanf("%lld",&n); int ans = 1; for(int i=0;i < cnt && p[i] * p[i] <= n;i++) { if(n%p[i]==0){ int nn = 0; while(n%p[i] == 0){ nn ++; n /= p[i]; } ans *= (1+nn); } } if(n>1) ans *= 2; printf("Case %d: %d\n",nc++,ans-1); } return 0;}
1 0
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 2016秋季练习
- 字符编码笔记:ASCII,Unicode和UTF-8
- Android - 《Keeping Your App Responsive》
- [CocoaPod]基于私有仓库的pod创建问题
- 【jzoj4790】【选数问题】
- ardunio设置蓝牙模式--程序
- 2016秋季练习
- 【jzoj4791】【矩阵】
- 单片机项目:驱动VS1003模块
- Oracle数据库程序包全局变量的应用
- Android studio设置requestWindowFeature(Window.FEATURE_NO_TITLE);出错
- 简单理解设计模式之工厂模式
- 使用List的时候会将对象全部取出
- 崩溃后程序保持运行状态而不退出
- sctf 2014 pwn300