C/C++

Написать программу, возвращающую значение N, если N - простое число

и "ничего не делающую" в противном случае (N-нечетное). Число называется простым, если оно не имеет других делителей, кроме 1 и самого себя.
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int is_prime(unsigned x) {
int p;
if (x <= 5 && x != 4) p = 1;
else if (~x & 1 || 0 == x % 3 || 0 == x % 5) p = 0;
else {
unsigned n;
for (n = 3; n * n <= x && x % n; n += 2) { ; }
p = n * n > x? 1 : 0;
}
return p;
}
int main(void) {
unsigned n;
printf("n: ");
scanf("%u", &n);
if (is_prime(n)) printf("Returned: %u\n", n);
else puts("I do nothing...");
system("pause > nul");
return 0;
}
Александр Дегонский
Александр Дегонский
99 330
Лучший ответ
Непонятно, почему нечетное. 2 - простое число :)

#include "iostream"
using namespace std;
bool IsPrime(int n){
int j=2; if(n<2)return false; if(n==2)return true;
do if(n%j++==0)return false; while(j*j<=n); return true;}
int main(){int n; cin>>n; if(IsPrime(n))cout<< n<< endl;}
Хули_Ган Хули_Ган О да, это то, что я хотел увидеть! Мои глаза.
#include<stdio.h>
int main()
{
int j,k,i,ii=0,N;
printf ("Введите число N ");
scanf("%d",&N);
k=0;
for (i=2;i<=N;i++)
{
for (j=2;j<=N;j++)
{
if (i % j == 0)
{
if(i>j){
printf("\nчисло %d не простое, так как делится ещё и на %d",i,j);
ii=i;
}
else if(i!=ii) {k++;
printf("\nчисло %d простое",i);
}
}
}
}
if (k==0)
printf("Простых чисел до %d не сущетсвует",N);
else
printf("\nВсего простых чисел %d",k);
return 0;
}
Тимур Леднев
Тимур Леднев
37 945

Похожие вопросы