我有一个编写代码的任务,该代码打印出1-100之间的所有素数。我正在查看不同的程序,以了解该做什么并继续运行,即“if(x%c == 0)”。
现在我无法找出“x%c”的含义。我环顾四周,在任何地方找不到任何好的答案。可能是因为寻找错误的东西。这在下面的代码中到底是做什么的?
#include<stdio.h>
int main()
{
int n, i = 3, count, c;
printf("Enter the number of prime numbers required\n");
scanf("%d",&n);
if ( n >= 1 )
{
printf("First %d prime numbers are :\n",n);
printf("2\n");
}
for ( count = 2 ; count <= n ; )
{
for ( c = 2 ; c <= i - 1 ; c++ )
{
if ( i%c == 0 )
break;
}
if ( c == i )
{
printf("%d\n",i);
count++;
}
i++;
}
return 0;
}
答案 0 :(得分:2)
这是模运算。 https://en.wikipedia.org/wiki/Modulo_operation
如果你在整数空间中进行除法,则为余数。
例如:
3 % 3 = 3 mod 3 = 0
表示如果将3除以3得到1,则余数为0。 如果除法不留余数,则第一个数是第二个的倍数。 这意味着它不是素数(如果你除以的数字不是1或相同的数字)
一个完整的例子
15 % 2 = 1
15 % 3 = 0
15不是素数
答案 1 :(得分:1)
&#34;变量之间的百分比&#34;是在C中找到余数的算子。
例如,如果x = 10
和y = 4
,则x % y
为2
。
for ( c = 2 ; c <= i - 1 ; c++ )
{
if ( i%c == 0 )
break;
}
在上面的代码段中,当达到c
的值时,我们将突破此循环,以便i
可被c
整除,即i
分割时c
0
为余数。