编写程序求2到100以内所有质数,下面一个程序中当i=2时,从第二个for循环给我分析一下执行的过程,详细的!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写程序求2到100以内所有质数,下面一个程序中当i=2时,从第二个for循环给我分析一下执行的过程,详细的!相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
main()
int k,i,tag;
for(i=2;i<=100;i++)
tag=0;
for(k=2;k<i;k++)
if(i%k==0) tag=1;
if(tag==0)
printf("d,",i);

if(i%k==0) tag=1; 余数为0 ,即可以整除,就不是质数,标志tag设置为1

求质数用这个吧,刚弄着玩的
#define MAXNUM 1000

bool isPrime(long num)

bool bPrime = true;
for (int i=2;i*i<=num;i++)

if(0 == num%i)

bPrime = false;
break;


return bPrime;


int main(int argc, char* argv[])

long cnt = 0;
// long maxPrime=0;
for (long i=2;i<= MAXNUM;i++)

if(isPrime(i))

printf("%d\t",i);
//maxPrime = i;
cnt++;



printf("\r\n total cnt: %d\r\n",cnt);
return 0;
参考技术A 这是最原始的求质数的方法,第二个for循环就是判断i是否有除1和自身以外其他的因子,有的话,就讲标志位tag置1,然后根据标志位是否为1判断i是否为质数 参考技术B 很简单 马上好

求100以内的所有质数(素数) 要求:用VB的for语句写

参考技术A Private Sub Command1_Click()
For n = 2 To 100 '2到100循环
For i = 2 To Int(Sqr(n)) 'sqrt(n)求开方用int取整
If n Mod i = 0 Then Exit For '如果2到100中的有数字满足不能被2到该数字开方的自然数除尽,它就是你要的素数!
Next i
If i > Int(Sqr(n)) Then '从2到int(sqrt(n))没有找到可以除尽的数字,[循环到i=int(sqrt(n))+1,不满足范围,推出循环]n就是素数!
textbox1.text+=n.tostring+" "
End If
Next n
End Sub
参考技术B Private Sub Command1_Click()
For n = 2 To 100 '2~100
For i = 2 To Int(Sqr(n))
If n Mod i = 0 Then Exit For
Next i
If i > Int(Sqr(n)) Then
Print n & "是素数"
End If
Next n '2~100

End Sub本回答被提问者采纳

以上是关于编写程序求2到100以内所有质数,下面一个程序中当i=2时,从第二个for循环给我分析一下执行的过程,详细的!的主要内容,如果未能解决你的问题,请参考以下文章

用C++编写程序求100以内的所有素数(质素)的和。

c语言使用循环找出100之内的所有质数

求100以内的所有质数(素数) 要求:用VB的for语句写

编写程序求出100到1000范围内所有素数的和c语言

输出50到100所有质数的c语言编程

Java求100以内的质数的四种方法