编程题:随便输入一个数n,用while或for循环来输出1到n的所有质数,这个程序怎么编谁能告诉我?

如题所述

第1个回答  2010-10-04
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
int m,k,i,n,l=0;
cout<<"请输入n:"<<endl;
cin>>n;
bool prime;//设置一个bool型
for(m=1;m<=n;m=m+2)//奇数才有可能是素数
{prime=true;
k=int(sqrt(m));//判断到一半即可
for(i=2;i<k;i++)
if(m%i==0)
{prime=false;
break;}//break的作用很大
if(prime)
{cout<<setw(5)<<m;
l=l+1;}(l用来控制输出格式)
if(l%10==0) cout<<endl;
}
cout<<endl;
}
这是用C++写的本回答被提问者采纳
第2个回答  2010-10-04
不知道你用何种程序语言?
pascal程序:
var
n,m,i:longint;
flag:boolean;
begin
readln(n);
for m:=2 to n do
begin
flag:=true;
for i:=2 to m-1 do
if m mod i=0 then
begin
flag:=false;
break;
end;
if flag then write(m,' ');
end;
writeln;
end.

参考资料:Shortway

第3个回答  2010-10-04
#include <stdio.h>

int main()
{
int N, i , j;
scanf("%d", &N);

for (i = 2; i <= N; i++)
{
for (j = 2; j * j <= i; j++)
{
if (0 == i % j)
break;
}
if (j * j <= i)
printf("%d\n", i);
}
return 0;
}

C语言求1到n所有质数
int main(){ int i,j,n,m;scanf("%d",&n);for(m=0;n;n\/=10)m=m*10+n%10;if(m>1)printf("2 ");for(i=3; i<=m; i+=2){ for(j=3;j*j<=i;j+=2)if(i%j==0)j=i;if(j*j>i)printf("%d ",i);} return 0;} ...

用穷举法写出1-100间的质数,分别用while do_while 和for语句实现。
while:int i=2;while(i<=100){ j=2;while(j%i&&j<i){ j++;} if(j==i)printf("%d ",i);} do...while:int i=2;int j;do {j=2;while(j%i&&j<i){ j++;} if(j==i)printf("%d ",i);i++;}while(i<=100)for:int i,j;for(i=2;i<=100;i++){ for(j=2;j...

...while、do...while循环语句求出1~100之间的质数。用c#解答,谢谢_百 ...
inti,j,n,m;i=2;do { m=1;n=i\/2;j=2;do { if(i%j==0){ m=0;break;} j++;} while(j<=n);if(m)cout<<i<<" ";i++;} while(i<101);} 3.for include<iostream.h> void main(){ inti,j,n,m;for(i=2;i<101;i++){ m=1;n=i\/2;for(j=2;j<=n;j++...

输入一个整数,用VB的While wend 或 Do Loop Until判断质数。
While a <= Int(x \/ 2) And flag If Int(x \/ a) = x \/ a Then flag = False Else a = a + 1 End If Wend If flag = True Then MsgBox x & "是一个质数" Else MsgBox x & "不是一个质数"End Sub

2)c++ 用穷举法找出1到100之间的质数.分别适用while,do-while,for循环...
if (n % i == 0){ return false;break;} else return true;i++;}while(i <= n - 1);}void main(){ int n;cin >> n;cout << "for -> " << isprime_for(n) << endl;cout << "while -> " << isprime_while(n) << endl;cout << "do-while -> " << isprime_...

使用while循环语句编程:求解小于n的所有质数
在while循环外,先将n设为100(可以根据需要修改)。在while循环中,先将i设为2。使用嵌套的while循环来判断每个数是否是质数,如果是质数则输出该数。在循环体中,使用标记变量is_prime来判断一个数是否是质数,初始值为1,如果在检查因子时发现该数不是质数,则将is_prime标记为0。使用sqrt函数来...

用while循环求1到100的只能被1和自己整除的质数
while i <= (n \/ i): if n % i == 0: break i = i + 1 if i > (n \/ i): print(n, "是质数")n = n + 1 这里的思路是从2开始遍历到100,依次判断每个数是否为质数。具体来说,对于一个数n,从2开始到它的平方根之间的每个整数i都尝试去除n,如果i不能整除n,...

怎么利用for while do..while循环语句来判断一个数是不是质数?
if (n==1)printf("no")else { t=0;for(i=2;i<n;i++)if(n%i==0)t=1;} if(t==1)printf("no")else printf("yes")} === while语句 include <stdio.h> main( ){ int n,i,t;scanf("%d", &n);if (n==1)printf("no")else { i=2;t=0;while(i<n){ if(n%i==...

键盘输入一个正整数,程式设计判断其是否为素数(即质数)
for(intj=2;j<i;j++)if(i%j==0)return0;return1;} } voidmain(){ intn;printf("请输入你要判断的数:\\n");scanf("%d",&n);if(Fun(n)==1)printf("该数是质数!\\n");else printf("该数不是质数!\\n");} c#从键盘输入一个正整数,判断该数是不是素数(质数)intisPrime(int...

用java写一个程序,判断输出1~100之内的素数?
素数是指只能被1和自身整除的数,所以先定义一个函数判断一个数是否是素数,接着从1到100for循环判断。package baidu;public class Test {public static boolean fun(int n){if(n<2) return false;for(int i=2;i<n-1;i++)if(n%i==0) return false;return true;} public static void ...

相似回答
大家正在搜