C++输出2-100的质数,五个一行,有空白换行是什么原因? 编程求2到100所有素数
- c语言找出2~100之间的所有素数,每五个一行输出。
- C语言100以内所有质数,5个换行,并求和 急用,
- "C语言设计:输入两个数,输出两数之间的素数及其个数,输出要求每5个数一换行"
- 2~100内所有素数,每行显示5个 c++
c语言找出2~100之间的所有素数,每五个一行输出。
1、while前面增加一行:i=2,tag=1;
2、tag=0;的后面增加break;并把它们花括号在一起,写成:{tag=0;break;}
3、i++;后面增加一个花括号,写成:i++;}
4、两行printf("\n");之间的花括号,去掉一个,留3个。
应该没有其他错误了。
C语言100以内所有质数,5个换行,并求和 急用,
#include<stdio.h>
#include<math.h>
int main()
{
int a[25],flag,pos=0,sum=0;//a[25]存放100以内的质数,flag为标志位,若不是质
//就赋值为0,pos记录a[25]中的下一个存储下标,sum存放质数之和。
for(int i=2;i!=101;i++)
{//循环遍历2-100的数,1不是质数
flag=1;
for(int j=0;(j!=pos)&&(a[j]<=floor(sqrt(i)));j++)
{//根据质数判断定理:“对正整数n,如果用小于或等于根号n的所有质数去除,
//无法整除,则n为质数” ,pos之前的位置都存放了质数。
if(i%a[j]==0)
{
flag=0;
break;
}
}
if(flag||!pos)
{//此处的pos取反,用于第一个质数存入,第一个质数不满足上面的判断
a[pos]=i;
sum+=a[pos];
++pos;
}
}
//显示所有质数
for(int i=0;i!=25;i++)
{
printf("%d ",a[i]);
}
//打印和
printf("\n求得的和为:\n");
printf("%d\n",sum);
}结果如图:
"C语言设计:输入两个数,输出两数之间的素数及其个数,输出要求每5个数一换行"
#include <stdio.h>
int prime(int number)
{
int i;
for(i=2;i*i<=number;i++)
if(number%i==0)return 0;
return 1;
}
int main()
{
int m,n,i,count=0;
printf("请输入两个数a,b,(a<b,空格隔开):\n");
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++){
if(prime(i)==1){
printf("%10d",i);
count++;
if(count%5==0)
printf("\n");
}
}
printf("\n");
return 0;
}
2~100内所有素数,每行显示5个 c++
#include<iostream.h>
bool isLeap(int n) //该函du数zhi用于判断dao版n是否是权素数
{
if(n == 2) return true;
else
{
int i;
for(i = 2; i < n / 2; ++i)
{
if( n % i == 0) return false;
}
return true;
}
}
void main()
{
const int N=100;
int j,counter = 0;
for(j = 2; j <= N; ++j)
{
if( isLeap(j))
{
if(counter++ % 5 == 0)
{
cout << endl;
}
cout << j << '\t';
}
}
}