输入一个整数,然后显示所有小于或等于该数的素数。(提示:素数是指除了 1 和它
本身以外,不能被任何整数整除的数,例如 17 就是素数,因为它不能被 2~16 的任一整数整除。 实际 上只判断不能被 2~8 整除就可以。
1.要求所有素数,一个数除以它之前所有数都无法余0(1除开和自己);假如整数为11,那么要从2开始到11中的数来排查,而一个数又要除从1到11的数来判断。所以用双循环。
2.但我们可以排除偶数,优化程序,偶数必有2这个因子。
#include<stdio.h>
int main()
{
int input, i, j;
scanf("%d", &input);
if (input >= 2)
printf("2\n");
for (i = 3; i <= input; i += 2)
{
for (j = 2; j <= i; j++)//j假如从1算那程序会在第一次直接跳出,算不出。
{
if (i % j == 0)
{
break;若i%j在其中某部分可以就符合条件,那后面就不用算,跳出循环
}
}
if (j >= i)//判断i和j的大小,决定i是否在j未到i之前就被整除;
{
printf("%d\n", i);
}
}
return 0;
}
注 2也是素数,不要忘记!