2013-11-20 3 views
0

У меня есть программа, которая печатает пять простых чисел в пределах диапазона ввода пользователя (m, n).Программа C для печати следующих пяти простых чисел

Моя проблема в том, что я хочу напечатать числа, большие, чем m. и напечатайте только следующие пять номеров. Я не хочу использовать верхний предел.
Как я могу это сделать?

#include <stdio.h> 
#include <conio.h> 

int main() 
{ 
int m,n,i,j,k,flag; 


printf("\nEnter The Lower Limit: "); 
scanf("%d",&m); 
printf("\nEnter The Upper Limit: "); 
scanf("%d",&n); 

printf("\nPrime Numbers Between %d & %d Are:\n",m,n); 
for(i=m ; i<=n ; i++) 
{ 
    k=i; 
    flag=1; 
    for(j=2 ; (j<=k/2)&&flag ; j++) 
    { 
    if(k%j==0) 
    flag=0; 
    } 

    if(flag) 
    printf("%3d \n",i); 
} 


} 
+2

Вам нужно показать, что ** вы ** попробовали. Да, у вас есть * программа, но похоже, что она взята из [здесь] (http://www.codingbot.net/2013/07/generate-prime-numbers-within-range-of.html), поэтому, не ** ваш ** код. –

+1

@YuHao; Хорошее поисковое умение :) – haccks

+2

@haccks Ха-ха, слова * У меня есть программа * вместо * Я написал программу * заставляет меня задуматься. Поиск выполняется с использованием одного уникального заявления для google (я использовал третью строку 'printf') –

ответ

2

Почему не просто подсчитать количество простых чисел вы напечатали?

int count = 0; 

: 

for(i=m ; (i<=n) && (count<5) ; i++) 

: 

if(flag) 
{ 
    printf("%3d \n",i); 
    count++; 
} 

PS, используя длинные имена, чем одиночные символы помогут сделать вашу программу более понятной.

0

Нравится ли вам это или нет, у вас есть более высокий предел, который задается типом данных, который вы используете ->int, в вашем случае. Представьте, что вы хотите, чтобы первые 5 простых чисел были больше (MAXINT-10) ... вы поняли, но предположим, что вас не интересуют угловые случаи.

int count=0; 
int i=m; 
int k; 
while (count<5) 
{ 
    k=i; 
    flag=1; 
    for(j=2 ; (j<=k/2)&&flag ; j++) 
    { 
    if(k%j==0) 
    flag=0; 
    } 

    if(flag) 
    { 
    printf("%3d \n",i); 
    count++; 
    } 

    i++; 
} 
Смежные вопросы