题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805370650738688

这题与素数没啥太大关系,一开始想多了,事实只要求出第一个数字和实际长度就行了

代码

  1. #include<vector>
  2. #include<algorithm>
  3. #include<cstdio>
  4. #include<cmath>
  5. #include<iostream>
  6. using namespace std;
  7. typedef long long LL;
  8. int main(){
  9. LL n;
  10. LL ans_first = 0, ans_len = 0;
  11. scanf("%lld",&n);
  12. LL sqr = (LL)sqrt(1.0 * n);
  13. for(LL i = 2; i <= sqr; i++){
  14. LL temp = 1;
  15. for(LL j = i; j <= sqr; j++){
  16. temp *= j;
  17. if(n % temp != 0) break;
  18. if(j - i + 1 > ans_len){
  19. ans_first = i;
  20. ans_len = j - i + 1;
  21. }
  22. }
  23. }
  24. if(ans_len == 0) {
  25. printf("1\n%lld",n);
  26. }
  27. else {
  28. printf("%lld\n",ans_len);
  29. for(LL i = ans_first; i < ans_first + ans_len; i++){
  30. printf("%lld",i);
  31. if( i != ans_first + ans_len - 1) printf("*");
  32. }
  33. }
  34. return 0;
  35. }