Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // program prosti :: eratostenovo sito :: u intervalu [A,B]
- #include <iostream>
- #include <math.h>
- using namespace std;
- typedef long long int lint;
- int sumznam(int n) {
- int s = 0;
- if (n/10 == 0) return 1;
- while (n>0) {
- s += n%10;
- n/=10;
- }
- return s;
- }
- const int VEL = 1000001;
- int eratosten[VEL] = {0};
- int main() {
- lint a,b;
- lint razine[10]={0};
- cin >> a >> b;
- eratosten[1]=1;
- lint e = (lint) sqrt(b);
- for (lint i = 2; i <= e; i++)
- if ( !eratosten[i] )
- for (lint j=i*2; j <= b; j+=i)
- eratosten[j]=1;
- // lint x = 0;
- int p,x;
- int maxraz=0;
- for (lint i = a; i <=b; i++) {
- p = i;
- x = 0;
- while (!eratosten[p]) {
- x++;
- p = sumznam(p);
- }
- if (x>maxraz) maxraz=x;
- razine[x]++;
- }
- int s=0;
- for (int i = 0; i <= maxraz; i++) {
- cout << razine[i] << " ";
- }
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement