【发布时间】:2017-08-20 14:55:40
【问题描述】:
我正在解决this问题:
Peter 想为他的密码系统生成一些素数。帮助 他!你的任务是生成两个给定的所有素数 数字!
输入
输入以单行中的测试用例数量 t 开头 (t
输出
对于每个测试用例,打印所有质数 p,使得 m
示例
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;
}
【问题讨论】:
-
您可以通过从
main返回来终止。什么是“内存位置值”? -
我得到随机的 7 位数值,比如 2687615,这样下去。我猜这些值是地址值。
-
别猜了,这只会让事情变得混乱。显示输入和输出的示例。
-
当我输入 - 2 (new line)3 7 (new line)4 9 时,我的输出类似于 3 (new line) 5 (new line) 7 (new line) 5 (new line ) 7 (新行) 2686751 (新行) 2686759 (新行) 2686777 , 继续不停。
-
提示:这些是素数。我假设您之前评论中的 2687615 是刚刚编造的?
标签: c