用C语言求2-100的素数
时间: 2023-12-03 09:26:38 浏览: 39
以下是用 C 语言求解 2 到 100 的素数的程序:
```c
#include <stdio.h>
int main() {
int i, j, flag;
for (i = 2; i <= 100; i++) {
flag = 1;
for (j = 2; j < i; j++) {
if (i % j == 0) {
flag = 0;
break;
}
}
if (flag == 1) {
printf("%d ", i);
}
}
return 0;
}
```
程序中使用了两层循环,外层循环从 2 循环到 100,内层循环从 2 到当前数的前一个数进行遍历,如果发现当前的数能被整除,则不是素数,将 flag 置为 0,并跳出内层循环;如果内层循环执行完毕后 flag 仍为 1,则是素数,将其输出。
相关问题
用c语言求1-100之间素数的代码
### 回答1:
是什么?
下面是一个求1-100之间素数的C语言代码:
#include<stdio.h>
#include<math.h>
int main()
{
int i,j,flag;
for(i=2;i<=100;i++)
{
flag=1;
for(j=2;j<=sqrt(i);j++)
{
if(i%j==0)
{
flag=0;
break;
}
}
if(flag==1)
{
printf("%d\n",i);
}
}
return 0;
}
### 回答2:
用C语言求解1-100之间的素数的代码如下:
```c
#include <stdio.h>
int isPrime(int num) {
if (num <= 1) {
return 0;
}
for (int i = 2; i <= num / 2; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
printf("1到100之间的素数有:\n");
for (int i = 1; i <= 100; i++) {
if (isPrime(i)) {
printf("%d ", i);
}
}
return 0;
}
```
代码中的函数isPrime用于判断一个数是否为素数,如果是素数则返回1,否则返回0。在主函数main中,使用for循环遍历1-100之间的每个数,如果该数是素数,则打印输出。最后运行程序,即可求解出1-100之间的素数。输出结果为:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97。
### 回答3:
以下是一种用C语言求解1-100之间素数的代码:
```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;
}
int main() {
printf("1-100之间的素数有:\n");
for (int num = 1; num <= 100; num++) {
if (isPrime(num)) {
printf("%d ", num);
}
}
printf("\n");
return 0;
}
```
这个代码中,我们定义了一个`isPrime`函数,用于判断一个数是否为素数。该函数首先处理特殊情况(小于等于1的数都不是素数),然后通过循环从2到该数的平方根进行遍历,判断是否有能整除该数的因子。如果存在能整除的因子,则该数不是素数;如果遍历完毕都没有能整除的因子,则该数是素数。
在`main`函数中,我们使用了一个循环来遍历1到100之间的数,对每一个数调用`isPrime`函数进行判断。如果判断结果为真(即该数是素数),则输出该数。
运行以上代码,会输出1-100之间的所有素数,结果如下所示:
```
1-100之间的素数有:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
```
c语言求100-200之间素数
以下是两种C语言求100-200之间素数的例子:
方法一:常规计算
```c
#include <stdio.h>
void main(){
int i,j,flag;
int count=0;
for(i=100;i<=200;i++){
flag=1;
for(j=2;j<i;j++){ //判断是否为素数
if(i%j==0){
flag=0;
break;
}
}
if(flag==1){
printf("%d\t",i);
count++;
if(count%5==0){
printf("\n");
}
}
}
}
```
方法二:函数调用
```c
#include <stdio.h>
int num(int n){ //判断是否为素数
int flag,i;
flag=1;
for(i=2;i<n;i++){
if(n%i==0){
flag=0;
break;
}
}
return flag;
}
void main(){
int i,j,ret;
int count=0;
for(i=100;i<=200;i++){
ret=num(i);
if(ret==1){
printf("%d\t",i);
count++;
if(count%5==0){
printf("\n");
}
}
}
}
```