c语言问题求助
题目描述输出所有满足以下条件的3位整数:该数是素数,该数的个位数字与十位数字之和被10除所得余数恰好是该数的百位数字。例如,293是素数并且(3+9)被10除的余数是2,因此293是满足条件的3位素数。
#include<stdio.h>
#include<math.h>
int main()
{
int i =100,j=2,t=1,g,s,b;
for(i;i<=999;i++)
{
for (j;j<=i;j++);
{
if(i%j==0)
t=0;
}
if(t)
{
g = i%10;
b = i/100;
s = (i/10)%10;
if((g+s)%10==b)
printf("%d\n",i);
}
}
return 0;
}
您好!要实现这个题目,我们首先需要编写一个函数来判断一个数是否为素数。然后我们可以使用循环来遍历所有的3位整数,将满足条件的数打印出来。
下面是一个示例代码:
#include <stdio.h>
#include <stdbool.h>
// 判断一个数是否为素数
bool isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
for (int i = 100; i <= 999; i++) {
int unit = i % 10; // 个位数
int ten = (i / 10) % 10;// 十位数
int hundred = i / 100; // 百位数
if ((unit + ten) % 10 == hundred && isPrime(i)) {
printf("%d\n", i);
}
}
return 0;
}
运行这段代码,会输出所有满足条件的3位素数。
希望能帮到你!有任何问题都可以继续问我。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 本帖最后由 jackz007 于 2024-4-3 02:56 编辑
#include <stdio.h>
int main(void)
{
int i , k ;
for(k = 100 ;k < 1000 ; k ++) {
for(i = 2 ;i * i < k + 1 && k % i ; i ++) ;
if(i * i >= k + 1 && k / 100 == (k % 10 + k / 10 % 10) % 10) printf("%d\n" , k) ;
}
}
编译、运行实况:
D:\\C>g++ -o x x.c
D:\\C>x
101
211
239
257
293
349
367
431
523
541
569
587
743
761
853
D:\\C>
页:
[1]