本帖最后由 jackz007 于 2024-4-3 16:35 编辑 #include<stdio.h>
int main(void)
{
int b , g , i , j , s , t ;
for(i = 100 ; i < 1000 ; i ++) {
for(t = 1 , j = 2 ; j * j < i + 1 ; j ++) { /* 对于每一个 i 都必须重新初始化变量 j 和 t */
if (i % j == 0) {
t = 0 ; /* 否定 i 是一个素数的假定 */
break ; /* 继续循环已经完全失去意义 */
}
}
g = i % 10 ;
b = i / 100 ;
s = (i / 10) % 10 ;
if(b == (g + s) % 10 && t) printf("%d\n" , i) ;
}
}
这个代码可以进一步精简为:#include <stdio.h>
int main(void)
{
int b , g , i , j , s , t ;
for(i = 100 ; i < 1000 ; i ++) {
for(j = 2 ; j * j < i + 1 && (t = i % j) ; j ++) ;
b = i / 100 ;
g = i % 10 ;
s = (i / 10) % 10 ;
if(b == (g + s) % 10 && t) printf("%d\n" , i) ;
}
}
|