Эта базовая реализация:
function prima($n){
for($i=1;$i<=$n;$i++){ //numbers to be checked as prime
$counter = 0;
for($j=1;$j<=$i;$j++){ //all divisible factors
if($i % $j==0){
$counter++;
}
}
//prime requires 2 rules ( divisible by 1 and divisible by itself)
if($counter==2){
print $i." is Prime
";
}
}
}
prima(20); //find prime numbers from 1-20
Здесь будет выводиться
2 is Prime
3 is Prime
5 is Prime
7 is Prime
11 is Prime
13 is Prime
17 is Prime
19 is Prime
Полная логика пошаговая и визуальная аналогия здесь: Здесь
Возможно ли, что вы используете GCC 5?
Если вы получаете ошибки компоновщика о неопределенных ссылках на символы, которые включают типы в пространстве имен std :: __ cxx11 или тег [abi: cxx11 ], то это, вероятно, указывает на то, что вы пытаетесь связать вместе файлы объектов, которые были скомпилированы с различными значениями для макроса _GLIBCXX_USE_CXX11_ABI. Это обычно происходит при подключении к сторонней библиотеке, которая была скомпилирована с более старой версией GCC. Если сторонняя библиотека не может быть перестроена с новым ABI, вам нужно будет перекомпилировать свой код со старым ABI.
blockquote>Источник: Замечания о выпуске GCC 5 / Dual ABI
Определение следующего макроса перед включением любых стандартных заголовков библиотек должно устранить вашу проблему:
#define _GLIBCXX_USE_CXX11_ABI 0
Я получил это, единственный способ, которым я нашел исправление, - это обновить все mingw-64 (я сделал это с помощью pacman на msys2 для вашей информации).
Если вы можете перекомпилировать все несовместимые библиотеки, которые вы используете, сделайте это с помощью опции компилятора
-D_GLIBCXX_USE_CXX11_ABI = 1
blockquote>, а затем перестройте свой проект. Если вы не можете этого сделать, добавьте параметр компилятора makefile вашего проекта
-D_GLIBCXX_USE_CXX11_ABI = 0
blockquote>Определить
#define _GLIBCXX_USE_CXX11_ABI 0/1
blockquote>также хорош, но вам, вероятно, нужно добавить его ко всем вашим файлам, тогда как опция компилятора сделает это для всех файлов одновременно.
Для меня -D_GLIBCXX_USE_CXX11_ABI = 0 не помогло.
Он работает после того, как я связался с версией C ++ libs вместо gnustl.
undefined reference
и перед поиском решения я проверил всю свою связь в программе и ничего не нашел. После этого я решил искать в Интернете и нашел это. Это работает как шарм, спасибо :) – Shravan40 25 October 2016 в 05:44