欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

lightoj-1028 Trailing Zeroes (I)

发布时间:2025/4/16 35 豆豆
生活随笔 收集整理的这篇文章主要介绍了 lightoj-1028 Trailing Zeroes (I) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

题意:给你一个数,问你有多少种进制对n的表示,存在后导零;
1.挺简单的,画画一个数转化为二进制是怎么转化过来的,就可以看出来求出非1的因子个数有多少个就可以了
用1进制表示没意义

#include <bits/stdc++.h> #define inF 0x3f3f3f3f #define X 10005 #define PI 3.141592653589793238462643383 #pragma comment(linker, "/STACK:1024000000,1024000000") using namespace std; typedef long long ll; const int maxn = 1e6+10; const int Times=10; const ll inf= 9223372036854775807; int N=1e6+10; int primer[maxn],a[maxn]; int main() {ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);int cnt=0;for(ll i=2; i<N; ++i) //int 1e6不加 int 就 RE{if(!a[i]){primer[cnt++]=i;for(ll j=i*i; j<N; j+=i) //如果是 j<N , 可以表示出sqrt(N)-N之间的素数,但这些素数绝对不是N的因子的a[j]=1;}}int t;cin>>t;for(int ca=1; ca<=t; ++ca){ll n;cin>>n;ll sum=1;for(int i=0; i<cnt&&primer[i]*primer[i]<=n; ++i){if(n%primer[i]==0){int ans=0;while(n%primer[i]==0){ans++;n/=primer[i];}sum=sum*(1+ans);}}if(n!=1)sum*=2;cout<<"Case "<<ca<<": "<<sum-1<<endl;}return 0; }

 

总结

以上是生活随笔为你收集整理的lightoj-1028 Trailing Zeroes (I)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。