Generated by Cython 0.12.1 on Thu Jun 24 23:35:29 2010
Raw output: _Users_robertwb__sage_sage_notebook_sagenb_home_admin_97_code_sage33_spyx_0.c
1:
2: include "interrupt.pxi" # ctrl-c interrupt block support
3: include "stdsage.pxi" # ctrl-c interrupt block support
4:
5: include "cdefs.pxi"
6: import cython
7:
8: @cython.locals(n=int, k=int)
9: def is_prime2(n):
static PyObject *__pyx_pf_75_Users_robertwb__sage_sage_notebook_sagenb_home_admin_97_code_sage33_spyx_0_is_prime2(PyObject *__pyx_self, PyObject *__pyx_arg_n); /*proto*/
static char __pyx_doc_75_Users_robertwb__sage_sage_notebook_sagenb_home_admin_97_code_sage33_spyx_0_is_prime2[] = "File: _Users_robertwb__sage_sage_notebook_sagenb_home_admin_97_code_sage33_spyx_0.pyx (starting at line 9)";
static PyObject *__pyx_pf_75_Users_robertwb__sage_sage_notebook_sagenb_home_admin_97_code_sage33_spyx_0_is_prime2(PyObject *__pyx_self, PyObject *__pyx_arg_n) {
int __pyx_v_n;
int __pyx_v_k;
PyObject *__pyx_r = NULL;
__Pyx_RefNannySetupContext("is_prime2");
__pyx_self = __pyx_self;
assert(__pyx_arg_n); {
__pyx_v_n = __Pyx_PyInt_AsInt(__pyx_arg_n); if (unlikely((__pyx_v_n == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
}
goto __pyx_L4_argument_unpacking_done;
__pyx_L3_error:;
__Pyx_AddTraceback("_Users_robertwb__sage_sage_notebook_sagenb_home_admin_97_code_sage33_spyx_0.is_prime2");
return NULL;
__pyx_L4_argument_unpacking_done:;
10: if n == 2: return True
__pyx_t_1 = (__pyx_v_n == 2);
if (__pyx_t_1) {
__Pyx_XDECREF(__pyx_r);
__pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
goto __pyx_L5;
}
__pyx_L5:;
11: if n % 2 == 0 or n < 2: return False
__pyx_t_1 = (__Pyx_mod_long(__pyx_v_n, 2) == 0);
if (!__pyx_t_1) {
__pyx_t_3 = (__pyx_v_n < 2);
__pyx_t_4 = __pyx_t_3;
} else {
__pyx_t_4 = __pyx_t_1;
}
if (__pyx_t_4) {
__Pyx_XDECREF(__pyx_r);
__pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
goto __pyx_L6;
}
__pyx_L6:;
12: k = 3
__pyx_v_k = 3;
13: while k*k <= n:
while (1) {
__pyx_t_4 = ((__pyx_v_k * __pyx_v_k) <= __pyx_v_n);
if (!__pyx_t_4) break;
14: if n % k == 0: return False
if (unlikely(__pyx_v_k == 0)) {
PyErr_Format(PyExc_ZeroDivisionError, "integer division or modulo by zero");
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__pyx_t_4 = (__Pyx_mod_int(__pyx_v_n, __pyx_v_k) == 0);
if (__pyx_t_4) {
__Pyx_XDECREF(__pyx_r);
__pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
goto __pyx_L9;
}
__pyx_L9:;
15: k += 2
__pyx_v_k += 2;
}
16: return True
__Pyx_XDECREF(__pyx_r);
__pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_2);
__pyx_r = __pyx_t_2;
__pyx_t_2 = 0;
goto __pyx_L0;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_2);
__Pyx_AddTraceback("_Users_robertwb__sage_sage_notebook_sagenb_home_admin_97_code_sage33_spyx_0.is_prime2");
__pyx_r = NULL;
__pyx_L0:;
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}