为什么在打印特定范围的素数后得到内存位置值?

时间:2017-08-20 14:55:41

标签: c

我正在解决this问题:

  

彼得想为他的密码系统生成一些素数。救命   他!你的任务是生成两个给定的所有素数   数字!

     

输入

     

输入以单行中的测试用例数t开头   (T< = 10)。在接下来的每一行中,有两个数字m和n(1   < = m< = n< = 1000000000,n-m< = 100000)以空格分隔。

     

输出

     

对于每个测试用例,打印所有素数p,使得m <= p <= n,   每行一个数字,用空行分隔的测试用例。

     

示例

Input:
2
1 10
3 5

Output:
2
3
5
7

3
5

在输出中输入素数后,我得到了内存位置值。 你能解释一下我在获得最终输出后如何终止。

这是我的代码:

#include <stdio.h>
int main()
{
int t, i, m[10], n[10], j, k, l, isPrime;
// t is test case, m[] and n[] are the lower and upper value of the range of prime numbers
// isPrime is to check the condition True or False.
j = 0;
scanf(" %d \n", &t);

for(i=0; i<t; i++)
{
  scanf("%d%d",&m[i],&n[i]);
}

while(j<=i)
{
  for(k = m[j]; k<= n[j]; k++)
  { isPrime = 0;
    for(l = 2; l<= (k/2); l++){
        if(k%l == 0)
        {
            isPrime = 1;
            break;
        }
    }
    if(isPrime==0 && n[j]!= 1)
        printf(" %d \n", k);
  }
  j++;
}
getch();
return 0;
}

2 个答案:

答案 0 :(得分:0)

您正在使用getch(),它将停止程序,直到您在执行完所有程序后立即按任意键。删除getch(),关闭IDE后,从源文件夹文件中编译并运行.exe。

答案 1 :(得分:0)

好吧,我执行了代码,没有getch(),它运行正常!