提交时间:2025-10-14 15:25:10

运行 ID: 38504

#include<bits/stdc++.h> using namespace std; typedef long long ll; ll n,p; ll dp[55]; int main(){ //freopen("sequence.in","r",stdin); //freopen("sequence.out","w",stdout); dp[0]=0,dp[1]=1; cin>>n>>p; for(int i = 2;i<=n;i++){ dp[i]=(2*dp[i-1]%p+dp[i-2])%p; } printf("%lld=",dp[n]); for(int i = 2;i*i<=dp[n];i++){ while(dp[n]%i==0){ dp[n]/=i; if(dp[n]==1)printf("%d",i); else printf("%d*",i); } if(dp[n]==1)break; } if(dp[n]>1)printf("%lld",dp[n]); //fclose(stdin); //fclose(stdout); }