This page contains the code for K-algorithm. While writing the program:
#include <stdio.h> #include <math.h> unsigned long long int K1 (unsigned long long int) ; unsigned long long int K3 (unsigned long long int x); unsigned long long int K4 (unsigned long long int x); unsigned long long int K5 (unsigned long long int x); unsigned long long int K6 (unsigned long long int x); unsigned long long int K7 (unsigned long long int x); unsigned long long int K8 (unsigned long long int x); unsigned long long int K9 (unsigned long long int x); unsigned long long int K10 (unsigned long long int x); unsigned long long int K11 (unsigned long long int x); unsigned long long int K12 (unsigned long long int x); int main(void){ int i,n; unsigned long long int x; printf("Enter the seed value"); scanf("%llu",&x); printf("Enter the number of numbers to be generated "); scanf("%d",&n); for(i = 0;i < n;i++){ printf("%llu\n",K1(x)); x=K1(x); } return 0; } unsigned long long int K1(unsigned long long int x){ int y ; unsigned long long int z; y= (int) ( x / 1000000000 ) + 1 ; while(y > 0) { z = (int)( x / pow(10,8) ) % 10 ; switch(z) { case 0: x = K3(x); x = K4(x); x = K5(x); x = K6(x); x = K7(x); x = K8(x); x = K9(x); x = K10(x); x = K11(x); x = K12(x); break ; case 1: x = K4(x); x = K5(x); x = K6(x); x = K7(x); x = K8(x); x = K9(x); x = K10(x); x = K11(x); x = K12(x); break ; case 2: x = K5(x); x = K6(x); x = K7(x); x = K8(x); x = K9(x); x = K10(x); x = K11(x); x = K12(x); break ; case 3: x = K6(x); x = K7(x); x = K8(x); x = K9(x); x = K10(x); x = K11(x); x = K12(x); break ; case 4: x = K7(x); x = K8(x); x = K9(x); x = K10(x); x = K11(x); x = K12(x); break ; case 5: x = K8(x); x = K9(x); x = K10(x); x = K11(x); x = K12(x); break ; case 6: x = K9(x); x = K10(x); x = K11(x); x = K12(x); break; case 7: x = K10(x); x = K11(x); x = K12(x); break ; case 8: x = K11(x); x = K12(x); break ; case 9: x = K12(x); break ; } y =y - 1 ; } return x; } unsigned long long int K3 (unsigned long long int x){ if (x / pow(10,9) < 5) x = x + (5 * pow(10,9) ); return x; } unsigned long long int K4 (unsigned long long int x) { unsigned long long int y = (unsigned long long int) ( x /pow(10,2.0) * x / pow( 10,3.0) ) % (unsigned long long int) pow(10,10) ; return y ; } unsigned long long int K5 (unsigned long long int x) { return (unsigned long long int)(x * 1001001001) % (unsigned long long int)pow(10,10) ; } unsigned long long int K6 (unsigned long long int x) { unsigned long long int y ; if ( x < pow(10,8) ) { y = (unsigned long long int)(x + (unsigned long long int) pow(10,10) - (unsigned long long int)185944323 ) ; } else y = (unsigned long long int)(pow(10,10) - x ); return y; } unsigned long long int K7 (unsigned long long int x) { x = (unsigned long long int) pow(10,5) * (x % (unsigned long long int)pow(10,5) ) + ( x / (unsigned long long int) pow(10,5) ) ; return x ; } unsigned long long int K8 (unsigned long long int x) { unsigned long long int y = K5(x); return y ; } unsigned long long int K9 (unsigned long long int x) { int j = 0; unsigned long long int y; y = x; while((x / pow(10.0,j)) !=0) { if((y % 10) != 0) x = x -(unsigned long long int) pow(10.0,j) ; y= y / 10 ; j++; } return x; } unsigned long long int K10(unsigned long long int x){ if(x < (unsigned long long int) pow(10,5) ) x = x*x + 99999 ; else x = x - 99999; return x; } unsigned long long int K11(unsigned long long int x){ if(x!=0) { while( x < pow(10,9) ) x = 10 * x; } return x; } unsigned long long int K12(unsigned long long int x){ x = (unsigned long long int) ( x / pow(10,2.0)* (x-1) /pow(10,3.0)) % (unsigned long long int) pow(10,10) ; return x; }
#include < stdio.h > #include < math.h > unsigned long long int K1 (unsigned long long int) ; unsigned long long int K3 (unsigned long long int x); unsigned long long int K4 (unsigned long long int x); unsigned long long int K5 (unsigned long long int x); unsigned long long int K6 (unsigned long long int x); unsigned long long int K7 (unsigned long long int x); unsigned long long int K8 (unsigned long long int x); unsigned long long int K9 (unsigned long long int x); unsigned long long int K10 (unsigned long long int x); unsigned long long int K11 (unsigned long long int x); unsigned long long int K12 (unsigned long long int x); unsigned long long int convert (unsigned long long int x); int main(void) { int i,n; unsigned long long int x; FILE *fp; printf("Enter the seed value"); scanf("%llu",&x); printf("Enter the number of numbers to be generated "); scanf("%d",&n); fp = fopen("smrdata","w"); for(i = 0;i < n;i++){ fprintf(fp,"%llu",convert(K1(x))); x = K1(x); } fclose(fp); } unsigned long long int K1(unsigned long long int x){ int y ; unsigned long long int z; y= (int) ( x / 1000000000 ) + 1 ; while(y > 0) { z = (int)( x / pow(10,8) ) % 10 ; switch(z) { case 0: x = K3(x); x = K4(x); x = K5(x); x = K6(x); x = K7(x); x = K8(x); x = K9(x); x = K10(x); x = K11(x); x = K12(x); break ; case 1: x = K4(x); x = K5(x); x = K6(x); x = K7(x); x = K8(x); x = K9(x); x = K10(x); x = K11(x); x = K12(x); break ; case 2: x = K5(x); x = K6(x); x = K7(x); x = K8(x); x = K9(x); x = K10(x); x = K11(x); x = K12(x); break ; case 3: x = K6(x); x = K7(x); x = K8(x); x = K9(x); x = K10(x); x = K11(x); x = K12(x); break ; case 4: x = K7(x); x = K8(x); x = K9(x); x = K10(x); x = K11(x); x = K12(x); break ; case 5: x = K8(x); x = K9(x); x = K10(x); x = K11(x); x = K12(x); break ; case 6: x = K9(x); x = K10(x); x = K11(x); x = K12(x); break; case 7: x = K10(x); x = K11(x); x = K12(x); break ; case 8: x = K11(x); x = K12(x); break ; case 9: x = K12(x); break ; } y =y - 1 ; } return x; } unsigned long long int K3 (unsigned long long int x){ if (x / pow(10,9) < 5) x = x + (5 * pow(10,9) ); return x; } unsigned long long int K4 (unsigned long long int x) { unsigned long long int y = (unsigned long long int) ( x /pow(10,2.0) * x / pow( 10,3.0) ) % (unsigned long long int) pow(10,10) ; return y ; } unsigned long long int K5 (unsigned long long int x) { return (unsigned long long int)(x * 1001001001) % (unsigned long long int)pow(10,10) ; } unsigned long long int K6 (unsigned long long int x) { unsigned long long int y ; if ( x < pow(10,8) ) { y = (unsigned long long int)(x + (unsigned long long int) pow(10,10) - (unsigned long long int)185944323 ) ; } else y = (unsigned long long int)(pow(10,10) - x ); return y; } unsigned long long int K7 (unsigned long long int x) { x = (unsigned long long int) pow(10,5) * (x % (unsigned long long int)pow(10,5) ) + ( x / (unsigned long long int) pow(10,5) ) ; return x ; } unsigned long long int K8 (unsigned long long int x) { unsigned long long int y = K5(x); return y ; } unsigned long long int K9 (unsigned long long int x) { int j = 0; unsigned long long int y; y = x; while((x / pow(10.0,j)) !=0) { if((y % 10) != 0) x = x -(unsigned long long int) pow(10.0,j) ; y= y / 10 ; j++; } return x; } unsigned long long int K10(unsigned long long int x){ if(x < (unsigned long long int) pow(10,5) ) x = x*x + 99999 ; else x = x - 99999; return x; } unsigned long long int K11(unsigned long long int x){ if(x!=0) { while( x < pow(10,9) ) x = 10 * x; } return x; } unsigned long long int K12(unsigned long long int x){ x = (unsigned long long int) ( x / pow(10,2.0)* (x-1) /pow(10,3.0)) % (unsigned long long int) pow(10,10) ; return x; } unsigned long long int convert (unsigned long long int x){ while(x < (unsigned long long int)pow(10.0,10.0)) x = x * 10; return x; }