Другие языки программирования и технологии
Написать программу на языке C, чтобы в нее вводили число, а она говорила простое оно или нет
Я ввожу число х, а программа отвечает простое оно или нет
var
n,p,c:integer;
f:boolean;
begin
c:=1; //признак четности числа членов последовательности
writeln('Вводите члены последовательности');
repeat
readln(n);
if n<>0 then
begin
c:=-c;
if (p*p=n) and (c=1) then f:=true else f:=false;
p:=n;
end;
until n=0;
if f=true then write('Да, верно') else write('Нет, неверно');
end.
n,p,c:integer;
f:boolean;
begin
c:=1; //признак четности числа членов последовательности
writeln('Вводите члены последовательности');
repeat
readln(n);
if n<>0 then
begin
c:=-c;
if (p*p=n) and (c=1) then f:=true else f:=false;
p:=n;
end;
until n=0;
if f=true then write('Да, верно') else write('Нет, неверно');
end.
Короче, я давно не писал в Си, поэтому могут быть ошибки в синтаксисе, но я думаю, ты их исправишь, если что, ибо логика важней. Итак, функция, которая возвращает ПРАВДА/НЕПРАВДА о том простое число или нет
bool test(int number){
int tester = 2;
while number%tester != 0 {
tester++;
}
if tester == number && tester !=1{ //
return true;
} else {
return false;
}
}
bool test(int number){
int tester = 2;
while number%tester != 0 {
tester++;
}
if tester == number && tester !=1{ //
return true;
} else {
return false;
}
}
Когда то в институте делал на паскале. Вот держи, может тебе это поможет.
//Функция определения простого числа по алгоритму Эратосфена
//Входные параметры функции – число, которое нужно проверить
//на простоту. Функция возвращает true, если число простое,
//иначе false.
function simple(I:Integer):Boolean;var J:Integer;
begin
result:=True;
for J:=2 to I-1 do
if I mod J=0 then result:=False;end;
Думаю перевести на СИ труда не составит...
//Функция определения простого числа по алгоритму Эратосфена
//Входные параметры функции – число, которое нужно проверить
//на простоту. Функция возвращает true, если число простое,
//иначе false.
function simple(I:Integer):Boolean;var J:Integer;
begin
result:=True;
for J:=2 to I-1 do
if I mod J=0 then result:=False;end;
Думаю перевести на СИ труда не составит...
легче использовать потоки чем принты
Хз, по утру приходят в голову топорные коды, но вроде должен работать
bool simple(int n)
{
int counter; //Это счетчик делений без остатка
for(int i=1;i<=n;i++) //пробуем подряд делить на все числа от 1 до самого числа
{
if(n%i==0) counter++; //если остаток равен 0 прибавляем счетчик
//при n=1 возвращаем истину, так как единица делится только на саму себя, счетчик не дойдет //до 2
else if(n==1) return true;
}
//если счетчик дошел только до 2 значит нашлись 2 числа - 1 и само это число, это верно для //всех случаев кроме самой единицы
if(counter==2)
return true;
//ну а если целочисленных делителей больше то вернем ложь
else
return false;
}
bool simple(int n)
{
int counter; //Это счетчик делений без остатка
for(int i=1;i<=n;i++) //пробуем подряд делить на все числа от 1 до самого числа
{
if(n%i==0) counter++; //если остаток равен 0 прибавляем счетчик
//при n=1 возвращаем истину, так как единица делится только на саму себя, счетчик не дойдет //до 2
else if(n==1) return true;
}
//если счетчик дошел только до 2 значит нашлись 2 числа - 1 и само это число, это верно для //всех случаев кроме самой единицы
if(counter==2)
return true;
//ну а если целочисленных делителей больше то вернем ложь
else
return false;
}
Тимур Гарифуллин
Черт, забыл counter инициализировать, int counter = 0
я
Если я правильно понимаю, то:
#include
#include
int Simple ( int N );
//--- основная программа ---
void main()
{
int N;
printf ( "\nВведите целое число ");
scanf ( "%d", &N );
if ( Simple (N) )
printf ( "Число %d - простое\n", N );
else printf ( "Число %d - составное\n", N );
getch();
}
//--- функция ---
int Simple ( int N )
{
for ( int i = 2; i*i <= N; i ++ )
if ( N % i = = 0 ) return 0;
return 1;
}
N - число
#include
#include
int Simple ( int N );
//--- основная программа ---
void main()
{
int N;
printf ( "\nВведите целое число ");
scanf ( "%d", &N );
if ( Simple (N) )
printf ( "Число %d - простое\n", N );
else printf ( "Число %d - составное\n", N );
getch();
}
//--- функция ---
int Simple ( int N )
{
for ( int i = 2; i*i <= N; i ++ )
if ( N % i = = 0 ) return 0;
return 1;
}
N - число
Сергей Чижиков
а почему в конце return 1??
Никита Тришин
Это не решение
Юрий Вялых
Для реализации ответа из подпрограммы достаточно сделать функцию bool типа и возвращать true/false экономия памяти.
но не понятна суть вопроса? Найди в инете что такое простое число, и по найденной функции впиши формулу в подпрограмму
но не понятна суть вопроса? Найди в инете что такое простое число, и по найденной функции впиши формулу в подпрограмму
А есть непростое число?!
Жандос Жаксыбаев
Простое число, это число, которое имеет 2 делителя: себя и единицу.
#include
#include
int Simple ( int N );
//--- основная программа ---
void main()
{
int N;
printf ( "\nВведите целое число ");
scanf ( "%d", &N );
if ( Simple (N) )
printf ( "Число %d - простое\n", N );
else printf ( "Число %d - составное\n", N );
getch();
}
//--- функция ---
int Simple ( int N )
{
for ( int i = 2; i*i <= N; i ++ )
if ( N % i = = 0 ) return 0;
return 1;
}
N - число
#include
int Simple ( int N );
//--- основная программа ---
void main()
{
int N;
printf ( "\nВведите целое число ");
scanf ( "%d", &N );
if ( Simple (N) )
printf ( "Число %d - простое\n", N );
else printf ( "Число %d - составное\n", N );
getch();
}
//--- функция ---
int Simple ( int N )
{
for ( int i = 2; i*i <= N; i ++ )
if ( N % i = = 0 ) return 0;
return 1;
}
N - число
е
Похожие вопросы
- Как можно написать программу на языке C, которая будет выводить числа от 1 до 1000 без if, switch, do, while, for, goto?
- помогите написать программу на языке Си: В одномерном массиве целых чисел заменить максимальное значение минимальным.
- Как создать программу на языке c++
- помогите понять-программа, которая переводит новую написанную программу на языке, понятном прогр
- Как создать неконсольную программу на языке c++
- Напишите программу на языке Паскаль для решения задачи:
- люди помогите написать прогу в паскале чтоб она запрашивала число и потом писала простое оно или нет, всю голову сломал
- Как в ПАСКАЛЕ вводимое число представить как целое, если оно состоит из 1-8 цифр, и в виде строчного если оно может
- Нужно очень срочно создать программу. На языке c ++
- Написать программу на языке паскаль возведение числа в степень. Степень вводится с клавиатуры.