8.*(编程)输出n以内的素数

题目:输入一个整数n,输出0~n之间的所以素数(每个占一行)

解题思路:会用到取余符号%,以为我们要用余数来作判断!

      假如i是素数,则i不能整除2~i之间的所有数,定义一个变量j,取 2~i之间所有值。如果中间的数都不能除尽,

那么一起循环到最后一次j变成i时,i%j==i%i==0 这个时候i==j ,i就一定是素数。如果在j=0~i的循环中途

就出现i%j==0,说明i一定不是素数.

 

 1 #include 
 2 int main()
 3 {
 4     int N,i,j;
 5     scanf("%d",&N);
 6     for(i=2; i<=N; i++)         //遍历2~N之间的所有数 
 7     {
 8         for(j=2; j<=i; j++)  //j相当于0~i之间的所有数,i%如果除0~i之间的所有数都都不能除尽,那么i是素数。 
 9         {                    //i%j==0说明i能整除j  当i和j相等时,那么i%j必须为0 
10             if(i%j==0&&i!=j) //如果j不是在最后一个i=j的情况下i%j==0,说明在j在取0~i的某个值时,i能将其整除,因此i肯定不是素数。  
11                 break;
12             if(i%j==0&&i==j) //说明i%(0~i之间)都不能除尽,只有最后i==j的情况下才能除尽,此时已经把所有数都判断完了,i是素数 
13                 printf("%d\n",i);
14         }
15     }
16     return 0;
17 }

 

转载于:https://www.cnblogs.com/rookieclimber/p/10836461.html

你可能感兴趣的:(8.*(编程)输出n以内的素数)