变量之间的百分比

时间:2016-12-23 09:03:11

标签: c

我有一个编写代码的任务,该代码打印出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;
}

2 个答案:

答案 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 = 10y = 4,则x % y2

for ( c = 2 ; c <= i - 1 ; c++ )
      {
         if ( i%c == 0 )
            break;
      }

在上面的代码段中,当达到c的值时,我们将突破此循环,以便i可被c整除,即i分割时c 0为余数。