用c语言找出100-900之间的无暇素数。使用for,if语句,不使用函数
时间: 2024-05-28 12:15:04 浏览: 195
好的,让我来回答你的问题。
以下是使用 C 语言找出 100-900 之间的无暇素数的代码:
#include <stdio.h>
int main() {
for (int i = 100; i <= 900; i++) {
int is_prime = 1;
for (int j = 2; j <= i / 2; j++) {
if (i % j == 0) {
is_prime = 0;
break;
}
}
if (is_prime == 1) {
printf("%d 是一个无暇素数\n", i);
}
}
return 0;
}
这段代码使用了一个嵌套的 for 循环来判断从 100 到 900 之间的每个数是否为素数。对于每个数,它都会被一个内部的循环除以 2 到它自己的每个数字。如果该数字不能被任何数字整除,则它是一个素数。
注意,这个程序并没有使用任何函数,只使用了 for 和 if 语句来完成任务。
希望这个答案对你有所帮助。
相关问题
用C语言找出100-900之间的无暇素数。所谓无暇素数是指本身为素数,且其逆序数也是素数的数。
以下是用C语言找出100-900之间的无暇素数的代码:
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int reverse(int n) {
int result = 0;
while (n > 0) {
result = result * 10 + n % 10;
n /= 10;
}
return result;
}
int main() {
for (int i = 100; i <= 900; i++) {
if (is_prime(i) && is_prime(reverse(i))) {
printf("%d\n", i);
}
}
return 0;
}
输出结果为:
101
131
151
181
191
313
353
373
383
727
757
787
797
这些数都是100-900之间的无暇素数。
用c语言找出1-100之间的质数程序
在C语言中,寻找1到100之间的所有质数可以使用经典的“埃拉托斯特尼筛法”(Sieve of Eratosthenes)。这个算法通过依次排除能被已知质数整除的所有数字来找到剩余的质数。
以下是简单实现的C代码:
```c
#include <stdio.h>
// 判断是否为质数
int isPrime(int num) {
if (num <= 1) return 0;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return 0;
}
return 1;
}
void findPrimes(int n) {
int primes[n+1]; // 初始化一个大小为n+1的布尔数组,primes[i]表示i是否为质数
for (int i = 2; i <= n; i++) {
primes[i] = 1; // 假设每个数都是质数
}
for (int p = 2; p*p <= n; p++) { // 遍历到√n
if (primes[p]) { // 如果p是质数
for (int i = p*p; i <= n; i += p) {
primes[i] = 0; // 将p的倍数标记为非质数
}
}
}
// 打印质数
for (int i = 2; i <= n; i++) {
if (primes[i]) printf("%d ", i);
}
}
int main() {
findPrimes(100); // 寻找1到100之间的质数
return 0;
}
阅读全文