正题
大意
求1到c中属于a+b∗k(k∈N∗)a+b∗k(k∈N∗)的等差数列中或属于c+dk(k∈N∗)c+dk(k∈N∗)等比数列中的数的个数。
解题思路
等差数列的个数可以直接用公式计算,然后等比数列枚举的话不会超时,然后用公式去重就好了
代码
#include<iostream>
#include<cstdio>
using namespace std;
long long k,a,b,c,d,s,maxs;
int main()
{cin>>a>>b>>c>>d>>maxs;if (maxs>=a)//特判s=(maxs-a)/b+1;//计算等差个数k=c;while (k<=maxs){if ((k-a)%b!=0 || k<a) s++;//去重k=k*d;//枚举if (d==1) break;}cout<<s;
}