在所有比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");
}
# 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;
}