我想打印给定数字范围的除数。工作正常。但是当我尝试修改它以将 ****
放在素数除数的末尾时,它的行为就很奇怪。
#include <stdio.h>
int main()
{
int a,start,rounds,b,c,k=0;
printf("Please enter a number to start :");
scanf("%d",&start);
printf("Please enter how many numbers you want to print from that number :");
fflush(stdin);
scanf("%d",&rounds);
for(a=start;a<=start+rounds;a++)
{
printf("\n\nThe divisors of number :%d are \n",a);
for(b=1;b<=a;b++)
{
c=a%b;
if(!c)
{
k++;
printf("%d\n",b);
}
}
//printf("%d",k);
if((k==2)||(k==1))
printf("***\n");
}
getchar();
return 0;
}
PS:- 我用来查找质数的技巧是计算在循环结束之前执行了多少 printf
语句。难道有什么不妥吗?当我从 printf
语句中删除 //
时,它会打印如下。
start=========>k
1 =========>1
2 =========>3
3 =========>5
4 =========>8
5 =========>10
这是为什么?
最佳答案
if((k==2)&&(k==1))
在当今的计算机中,k 不可能同时为 2和1。也许你的意思是说 k 是 2 OR k 是 1 吗?
关于c - 查找素数给我带来错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15828115/