mbah_bejo

Amazing Factor Sequence

Mar 31st, 2021
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.70 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int i,j;
  5. int mulai=2;
  6. long long int arr[1000001];
  7. // mirip algo sieve, bedanya menghitung total faktorial tiap angka
  8. void faktor(int batas){
  9. for(i=mulai;i<=1000000;i++){
  10.         j=1; // mulai dari faktor bilangan terkecil
  11.         while(i*j<=1000000){
  12.             arr[i*j]+=j; //menjumlah tiap faktorial pada tiap angka
  13.             j++;
  14.         }
  15.         arr[i]+=arr[i-1]; // rumus pada soal
  16.         if(i==batas){   // membatasi looping
  17.             mulai = i+1;
  18.             break;
  19.         }
  20.     }
  21. }
  22. int main(){
  23.     short Tcase;
  24.     int angka;
  25.     cin >> Tcase;
  26.     while(Tcase--){
  27.         cin >> angka;
  28.         if(angka > (mulai-1)) faktor(angka); // loop faktorial
  29.         cout << arr[angka]<<endl;
  30.     } return 0;
  31. }
Add Comment
Please, Sign In to add comment