事情是这样的:
c语言实现:每两个2的n次方(2^n)之间的 素数 和 素数的数量 的程序,最后将结果规范的打印输出
#include <math.h>
bool isprime(int n)
{
if(i<=1)
return false;
for(int i=2;i*i<=n;i++)
if(n%i==0)
return false;
return true;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
int count=0;
int s = pow(2,i);
int e = pow(2,i+1);
for(int j=s;j<e;j++)
{
if(isprime(j))
{
printf("%d ",j);
count++;
}
}
printf("\n%d与%d之间共有素数数量:%d个\n",s,e,count);
}
return 0;
}
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include <stdio.h>
#include <math.h>
int isprime( int n);
int main()
{
int n = 7;
int j,i,a,b,s;
for( j=2; j<=n; j++ ) {
a = pow(2,j-1);
b = pow(2,j);
s = 0;
printf("%d 到 %d 之间的素数有:", a,b);
for( i=a; i<b; i++ ) {
if(isprime(i)){
printf("%d ", i);
s++;
}
}
printf(" 共%d个素数\n", s);
}
return 0;
}
int isprime(int n)
{
int i;
if(n<=3) return n>1;
for(i=2;i*i<=n;i++)
if(n%i==0) return 0;
return 1;
}