编一程序:输出所有小于等于n(n为一个大于2的正整数)的素数

c语言。... c语言。 展开
 我来答
xuwuyi008
推荐于2016-10-05 · TA获得超过1400个赞
知道答主
回答量:116
采纳率:100%
帮助的人:7.2万
展开全部
#include <stdio.h>
#include <math.h>
int prime(int x) /*判断正整数x是否为素数*/
{

} int i; for (i=2;i<(int)sqrt(x);i++) if (x%i==0) return 0; return 1; /*若x不是素数,则退出并返回0*/
void main()
{
int n,i,j=0;
/*j用于累计素数个数*/ printf("n:"); scanf("%d",&n); printf("小于等于%d的素数:\n",n); if (n>2) { printf("%4d",2); j++; } for (i=3;i<=n;i+=2) if (prime(i)==1) { } printf("%4d",i); if (j!=0 && ++j%10==0) printf("\n"); /*每行最多显示10个素数*/
printf("\n");
}
百度网友7cb8fc542
2012-02-14 · TA获得超过298个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:285万
展开全部
#include <iostream>
using namespace std;

void main() //筛法求素数
{
long i, j, k = 0;
int max_num;
unsigned char *p_sieve;
cout << "please input the max_num" << endl;
cin >> max_num;
p_sieve = new unsigned char[max_num+1];
if (p_sieve == NULL)
{
cout << "Error! Exit!" << endl;
exit(1);
}
else
{
for (i = 2; i <= max_num+1; i++) //将所有数都放入筛子中
{
p_sieve[i] = 1;
}
cout << "primes from 1 to " << max_num << ":" << endl; //提示即将输出素数
for (i = 2; i <= max_num; i++)
{
if (p_sieve[i] == 1) //如果i在筛子里,也即i是素数
{
k++;
cout.width(4);
cout << i; //或者cout << setw(4) << i;另外加上去的,控制输出域宽的见第八章输入输出流
if (k % 15 == 0)
{
cout << '\n';
k = 0;
}
for (j = i * i; j <= max_num; j += i) //将素数i的倍数取出
{
p_sieve[j] = 0;
}
}
}
}
cout << endl;
}
//转载
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7f4f28558
2012-02-14 · TA获得超过272个赞
知道小有建树答主
回答量:489
采纳率:0%
帮助的人:237万
展开全部
int i, j,n;
for(i=3;i<n;i++)
{ for(j=2;j<i;j++)
{
if ((i%j)==0 ) break;
}
if (i==j) printf("%d, ",i);
}
别把 2忘了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_Mr_Computer_
2012-02-24 · TA获得超过1042个赞
知道小有建树答主
回答量:464
采纳率:100%
帮助的人:264万
展开全部
#include<stdio.h>
#include<string.h>
main()
{
int n,t,i,j;
for(;;)
{
system("cls");
printf("请输入素数的取值范围:\n");
scanf("%d",&n);
for(i=2;i<=n;i++)
{
t=0;
for(j=2;j<i;j++)
{
if((i%j)==0)
t=1;
}
if(t==0)
printf("%d ",i);
}
system("pause");

}
}

==================================================================MR_computer
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
数学蠢蛋
2012-02-25 · TA获得超过153个赞
知道答主
回答量:83
采纳率:0%
帮助的人:13.6万
展开全部
#include<stdio.h>
int main()
{
int n,i,j;
printf("enter a int>2:");
scanf("%d",&n);
for(j=n;j>1;j--)
{
for(i=0;i<=n/2;i++)
if(j % i==0) break;
if(i>n/2)
printf("%d",j);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式