C语言素数怎么表示

如题所述

#include<stdio.h>

#include<math.h>

intmain()

{

intx,i,j=0,k;

for(x=101;x<=200;x++)

{

for(i=2,k=0;i<=sqrt(x);i++)

if(x%i==0)

{

k++;

break;

}

if(k==0)

{

printf("%d",x);

j++;

}

}

printf("\n100到200之间有%d个素数\n",j);

}

扩展资料

100->200之间的素数的个数,以及所有的素数

#include<stdio.h>

#include<math.h>

intmain()

{

inta,m,k,i;

a=0;

for(i=101;i<=200;i++)

{

for(k=2;k<i;k++)

if(i%k==0)break;

if(k>=i)

a++;

}

printf("%d\n",a);

for(i=101;i<=200;i++)

{

for(k=2;k<i;k++)

if(i%k==0)break;

if(k>=i)

a++;

if(k>=i)

printf("%d",i);

}

printf("\n");

return0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-23

#include<iostream>
#include<cmath>
using namespace std;

int main()
{
int num = 0,i=0;
cin>>num;
for(i = 2;i<=sqrt(num);i++)
{
if(num%i==0)
break;
}
if(i>sqrt(num)
cout<<num<<"为素数"<<endl;
else
cout<<num<<"不是素数"endl;
return 0; 
}

扩展资料

C语言回文素数代码

#include<stdio.h>
int main()
{
int i,j;
int m,n,p;
for(i=11;i<1000;i++)
{
if(i>=11&&i<=99)
{
m=i%10;
n=i/10;
}
else
{
m=i/100;
n=i%10;
}

if(m==n)
{
for(j=2;j<i/2;j++)
if(i%j==0)
break;
if(j>=i/2)
{
printf("%d ",i);

}
}
return 0;
}

本回答被网友采纳
第2个回答  2012-05-08
#include<stdio.h>
void main()
{
int m,n,flag=1;
printf("请输入要测试的整数:");
scanf("%d",&n);
for(m=2;m<=n/2;m++)
if(n%m==0)
{
flag=0;//设置非素数标志
break;//一旦找到一个m,断定该n非素数,无需验证
}
flag?printf("%d是素数\n",n):printf("%d不是素数\n",n);

}
第3个回答  2020-08-30
除了以上方法以外,还可以用空间换时间的方法加快速度。
#include <iostream>

#define N 100//这里的100是素数上限。即生成素数范围是1~100,可更改此数值
using std::cin;
usint std::cout;
using std::endl;

bool book[N];//用布尔节省空间

int main()
{
bool[1]=true;//true表示不是素数

for(int i=2;i*2<=N;i++)
{

if(bool[i])

continue;

for(int j=i*2;j<=n;j+=i)

bool[j]=false;

}

return 0;

}
代码完毕,十分简短,可以将时间复杂度从O(n^3)降到O(n^2)。唯一的缺点就是比较耗内存
第4个回答  推荐于2017-11-28
#include <stdio.h>
#include <math.h>

int main()
{
int a;
int isp=1;

printf("请输入需要判断的大于1的正整数:\n");
scanf("%d",&a);

for(int i=2;i<sqrt(a);i++)
{
if(a%i==0)
{
isp=0;
break;
}

}

if(isp==1)
printf("%d 是素数\n",a);
else
printf("%d 不是素数\n",a);
return 0;
}本回答被网友采纳
相似回答