70,017
社区成员




简单写个:
#include <stdio.h>
int main()
{
const int p[] = {3, 5, 7, 11, 13, 17, 19, 23, 29, 31};
for (int b, i, j, k, n = 1; n && ~scanf("%d", &n); n = 0)
if (n < 100 || n > 999) puts("请输入正确数字");
else
{
if (b = 1, !(n & 1)) b = 0;
for (i = 0; b && i < 10; i++) n == p[i] ? i = 10 : b = n % p[i];
b ? (i = n / 100, j = n % 100 / 10, k = n % 10, i > j && j > k) ?
puts("是素数且为降序数") : puts("是素数不是降序数") : puts("不是素数");
}
return 0;
}
731不是素数~
首先,不要发明 i=i++ 这种写法,肯定是错误的。
其次,素数这个算法得全部试除结束了都不能整除,它才是素数。而不是试了一次就{匆忙得出结论,然后再接着试}。