c语言循环结构程序设计

在所有比1大的整数中,除1和它本身以外,不再有别的约数,这种整数叫做质数。该写程序,使程序能够输出区间[100,200]上所有的质数
#include"stdio.h"
……
else printf("no!\n");

以下代码中使用了两层循环,外层遍历区间 [100, 200] 中的每个整数,内层循环用于判断当前的整数是否为质数。对于内层循环,从2开始逐个尝试整数,如果能整除当前整数,则说明当前整数不是质数,此时可以立即退出内层循环,并标记当前整数不是质数。否则,当前整数就是质数,将其打印出来。

#include <stdio.h>

int main() {
    int i, j;
    for (i = 100; i <= 200; i++) {
        int isPrime = 1; // 假设i是素数
        for (j = 2; j < i; j++) { // 判断i是否为素数
            if (i % j == 0) {
                isPrime = 0; // i不是素数
                break;
            }
        }
        // 根据是否为素数打印结果
        if (isPrime == 1) {
            printf("%d ", i);
        }
    }
    return 0;
}

如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

#include <stdio.h>
int main()
{
    int count = 0;
    for(int i=100;i<=200;i++)
    {
        for(j=2;j<i;j++)
        {
            if(i%j==0)
            {
                count++;
                printf("%d ",i);
                break;
            }
        }
    }
    if(count == 0)
        printf("no!\n");
}

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7560049
  • 这篇博客也不错, 你可以看下C语言如何判断一个数是素数,输出100-200之间的全部素数。
  • 除此之外, 这篇博客: 【C语言上机练习题目-代码+运行结果】中的 4.2  求出100到200以内最大的素数和最小的素数,并求出两者的差值。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 源代码
    # include <stdio.h>
    # include <math.h>
    
    int main ( )
    {
    	int b=1,i,k,j,m,n,r,r1,len,min =1000,max=0;
    	int a[200]={0},s[200]={0};
    	
    	printf("*******************************************************************************\n\n");
    	printf("题目:求出100到200以内最大的素数和最小的素数,并求出两者的差值\n\n");
    	printf("算法:利用素数的性质,只有1和本身作为公因数,利用循环对其判断,存值到数数组里面,再利用循环求最大最小值,最后求差值。\n\n\n");
    	printf("*******************************************************************************\n\n");
    
    	while( b== 1)
    	{
    	printf("请输入区间端点值:\t");  
    	scanf("%d%d",&m,&n);
    	len = n-m+1;             //求出区间包含的个数
    
    
    
    	for(i=0;i<len;i++)       //对区间的数值赋值给数组
    		a[i]=m+i;			
    	
    	printf("打印所有素数:\n");
    	for(i=0;i<len;i++)		//逐个检测
    	{ 
    
       for (k=2;k<a[i];k++)
       {
    
       r = a[i]%k;
       if(r==0) break;       
       else r1 =1; 
    
        if(r1==1&&k==a[i]-1)    //除到2~a[i]-1都不整除,就是质数。
    	printf("%d\t",a[i]);
    	s[i] = a[i];           //将素数赋值给数组
    
       }
    
    
    	}
    
    
    
    	
       for(i=0;i<len;i++)
    	   if(s[i]!=0)
    	   if(min>s[i]) min = s[i];    //求最小素数
     
       for(i=0;i<len;i++)  
    	   if(s[i]!=0)//求最大素数
    	   if(max<s[i]) max = s[i];
       printf("\n\n最大素数-最小素数=%d\n\n",max-min);
    
     
    
       printf("\n*******************************************************************************\n\n");
    
    
       printf("\nBREAK(0) CONTINUE (1):\t");
    	scanf("%d",&a);
    
    
    	}
    
    return 0;
    }
    
    
    
    • 运行结果

    在这里插入图片描述


  • 您还可以看一下 李飞老师的C语言开发之数据结构与算法四课程中的 制作一个短网址系统小节, 巩固相关知识点