(1),(2)两个条件同时满足的话 就必须要满足p%B==1,即(p-1)%B==0,即求出p-1因子的个数即可
ac代码:
#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
const int N = 5000 + 5;
const double EPS = 1e-7;
int slove(int n){
int ans=0;
for(int i=1,ed=sqrt(n);i<=ed;++i){
if(n%i==0){
++ans;
int j=n/i;
if(i!=j){
++ans;
}
}
}
return ans;
}
int main()
{
int T;
scanf("%d",&T);
while(T--){
int p;
scanf("%d",&p);
printf("%d\n",slove(p-1));
}
return 0;
}