链接:
来源:牛客网时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld题目描述
当一个正整数能被2或者3或者5或者7整除,我们定义这个数为or2数 给定正整数 ,
求问这个数是否是or2数,如果是,则输出他是第几大的or2数,否则输出Scum输入描述:
多组数据(不超过1e5组,读到文件结束)每组数据一行:一个正整数x(1≤x≤1e18)
输出描述:
对于每个输入,输出一行。如果是or2数,输出or2 c,表示它是第c大的or2数 否则输出字符串Scum
示例1
输入
复制
2411
输出
复制
or2 1or2 3Scum
题解:周期性规律,细节在代码
代码:
#include#include #include #include using namespace std;int prime[1000005];bool vis[1000005]; int main(){ long long int n; int sum=0; for(int t=1;t<=210;t++) { if(t%2==0||t%3==0||t%5==0||t%7==0) { sum++; } } while(scanf("%lld",&n)!=EOF) { int s=n%210; int s1=0; for(int t=1;t<=s;t++ ) { if(t%2==0||t%3==0||t%5==0||t%7==0) { s1++; } } if(n%2==0||n%3==0||n%5==0||n%7==0) printf("or2 %lld\n",n/210*sum+s1); else { printf("Scum\n"); } } }