本文共 828 字,大约阅读时间需要 2 分钟。
如果是素数直接输出1与素数,否则枚举长度和起始数即可。
#include #include #include #include #include #include #include #include using namespace std;long long n;bool prime(long long x){ if(x==1) return 0; if(x==2) return 1; for(long long i=2; i*i<=x; i++) { if(x%i==0) return 0; } return 1;}int main(){ scanf("%lld",&n); int f=0; if(prime(n)) { printf("1\n"); printf("%lld\n",n); } else { for(int len=10; len>=1; len--) { long long num=1; for(long long i=2;; i++) { if(i==2) { for(long long j=i; j<=i+(long long)len-1; j++) { num=num*j; if(num>n) break; } } else num=num/(i-1)*(i+len-1); if(num>n) break; if(n%num==0) { f=1; printf("%d\n",len); for(long long j=i; j<=i+len-1; j++) { printf("%lld",j); if(j
转载于:https://www.cnblogs.com/zufezzt/p/5641842.html