Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Проверка на простоту
- //возвращает ноль если число простое, или найменьший делитель, если число состовное
- int is_prime(int number)
- {
- int i;
- printf("%d is prime checking\n", number);
- for(i= 2;i<sqrt(number)+1;i++)
- {
- if (number%i == 0)
- return i;
- }
- return 0;
- }
- int decomp(int number, int** list)
- {
- int i,size = 256, count = 0, *tmp_list,tmp;
- puts("decompilation've started");
- *list = malloc(size * sizeof(int*));
- for(tmp=is_prime(number); tmp!=0; count++, tmp = is_prime(number))
- {
- *list[count] = tmp;
- number /= *list[count];
- }
- if (!tmp)
- return count;
- }
- /*
- задал вот такой number = 2*3*5*7*11
- и в теории функция должна создать массив 2 3 5 7 11
- в дебаге вижу такую фигню
- size 256
- count 1
- tmp 3
- number 1155
- list 0хьавлпоывтпоытвап
- *list 0xjfnjhgjdghjd
- **list 2
- и ошибка в *list[count] = tmp;
- Exception has occurred.
- Segmentation fault*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement