1. Си / Говнокод #5

    +23

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    long gr, ri, r1, r2, y, z, z_rev;
    	for (i = 2; i < qr_count; i++) {
    		step = 0;
     		ri = r[i];
    		gr = - mpz_fdiv_ui(lowM, pm[i][step]);
    		r1 = gr + ri;
    		r2 = gr + pm[i][step] - ri;
    		if (r1 < 0) {
    			r1 += pm[i][step];
    		}
    		if (r2 < 0) {
    			r2 += pm[i][step];
    		}
    		while (r1 < (long) Ml2) {
    			sieve[r1][i] += 1;
    			r1 += pm[i][step];
    		}
    		while (r2 < (long) Ml2) {
    			sieve[r2][i] += 1;
    			r2 += pm[i][step];
    		}
    		for (step = 1; step < degr[i]; step++) {
    			gr = - mpz_fdiv_ui(lowM, pm[i][step]);
    			y = ri*ri;
    			y -= Npm[i][step];
    			y = y/( (long) pm[i][step-1]);
    			if (y < 0) { y += pm[i][step]; }
    			z_rev = (ri<<1) % QR[i];
    			//?IOOA?EOO ?OI?AOEO IA UAAEEIE?AIEA
    			if (z_rev == 0) { y = 0; }
    			else {
    				z = 1;	
    				while ((z_rev*z % QR[i]) != 1) { z++;}
    				y *= z*pm[i][step-1];
    				y = y % pm[i][step];
    			}
    			ri -= y;
    			if (ri < 0) { ri += pm[i][step]; }
    			r1 = gr+ri;
    			r2 = gr+pm[i][step]-ri;
    			if (r1 < 0) { r1 += pm[i][step]; }
    			if (r2 < 0) { r2 += pm[i][step]; }
    			while (r1 < (long) Ml2) {
    				sieve[r1][i] += 1;
    				r1 += pm[i][step];
    			}
    			while (r2 < (long) Ml2) {
    				sieve[r2][i] += 1;
    				r2 +=pm[i][step];
    			}
    		}
    	}

    Когда лучше, чтобы кода не было, чем, чтобы он был...

    Запостил: guest, 26 Ноября 2008

    Комментарии (81) RSS

    Добавить комментарий