求hack或求调
查看原帖
求hack或求调
646208
Hughpig楼主2024/7/19 16:47

火大,为啥20

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define up(l,r,i) for(int i=(l);i<=(r);++i)
#define pb push_back

ll m,ans;
unsigned ll fib[107];
vector<unsigned ll> factor;

map<unsigned ll,int> QwQ;

int main(){
	cin>>m;
	if(m==1)cout<<1,exit(0);
	fib[0]=fib[1]=1;
	up(2,100,i)fib[i]=fib[i-1]+fib[i-2];
	up(1,100,i)QwQ[fib[i]]=i;
	for(int i=100;i>1;--i){
		if(m%fib[i]==0){
			while(m%fib[i]==0)factor.pb(fib[i]),m/=fib[i];
		}
	}
	if(m>1)cout<<"NIE",exit(0);
	for(auto x:factor){
		ans+=QwQ[x];
	}
	ans+=factor.size()-1;
	cout<<ans;
}
2024/7/19 16:47
加载中...