C语言,列出100以内的素数 5
#include"stdafx.h"#include"stdio.h"#include"windows.h"#include"stdlib.h"intmain(intar...
#include "stdafx.h"#include "stdio.h"#include "windows.h"#include "stdlib.h"int main(int argc, char* argv[]){ int n,i; for(n=2;n<=100;n++) { for(i=2;i<n;i++) { if(n%i==0) break; } if(i>=n) printf("%d\t",n); }}为什么for(n=2;n<=100;n++), for(i=2;i<n;i++), if(i>=n)?
为什么输出结果先是2? 展开
为什么输出结果先是2? 展开
展开全部
列出100以内的素数
代码如下:
#include <stdio.h>
int main(void)
{
int i,j,k;
printf("%d\n",2);2肯定是素数[em02]
for(i=1;i<=100;i+=2)
{
for(j=2;j<i;j++)
if(i%j==0) break;
if(i==j)
printf("%d\n",i);
}
return 0;
}
拓展资料
从console输入一个数,判断这个数是否为素数(质数)。
代码如下:
判断过程代码如下:
素数是指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。要判断这个数是不是素数,需要将比它小的数(除1外)整除它,如果能就说明这不是素数。
展开全部
#include <stdio.h>
#include <math.h>
//判断整数是否为素数
int isPrime(int n)
{
int i;
for(i=2;i<=(int)sqrt(n);i++) //遍历从2~n的平方根向下取整
if(n%i == 0) //如果有i能被n整除,则n不是素数,返回0,否则返回1
return 0;
return 1;
}
int main()
{
int i,count;
for(i=2,count=0;i<100;i++) //i初始为2,count初始为0
if(isPrime(i)) //如果i是素数,执行if语句体
{
printf("%-5d",i);
count++;
if(count%10==0) //每输出10个素数则输出一个换行
printf("\n");
}
printf("\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个for是从2循环到100 为什么没有0和1呢 因为我们已经知道0和1不可能是素数 所以我们不用在循环里面加入这两个数
第二个for是因子 因子就是除数 当然不能为0 为1没有意义 所以当然是从2开始循环
你主要要理解求素数的算法 用这个数从2开始除起一直到他本身(或者是他的开平方) 每次除数加1 如果每次的余数都不为0 说明这个数是素数
我们从程序一步一步看起 第一步n=2 往下运行 i=2 然后进入if判断语句 2%2==0 跳出循环 然后因为2>=2 所以输出了2
第二个for是因子 因子就是除数 当然不能为0 为1没有意义 所以当然是从2开始循环
你主要要理解求素数的算法 用这个数从2开始除起一直到他本身(或者是他的开平方) 每次除数加1 如果每次的余数都不为0 说明这个数是素数
我们从程序一步一步看起 第一步n=2 往下运行 i=2 然后进入if判断语句 2%2==0 跳出循环 然后因为2>=2 所以输出了2
更多追问追答
追问
for(i=2;i<n;i++)和for(i=2;i<100;i++)有什么区别?
追答
你没理解为什么要到n 求一个素数 我们只要除以不大于他本身的所有自然数 只要余数不为0 说明就是素数 如果你这样写 当n=2时 他就要运行2%2 2%3 2%4.....2%100 这样不但可能得不到正确结果 还影响程序运行效率
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(n=2;n<=100;n++) 是为了遍历100以内的数,保证100以内的每个数都可以检测一下是不是为素数,for(i=2;i<n;i++) 是为了 看看这个数有没有可以除尽的数,有的话就不是素数了 if(i>=n)?这个是判断因数是不是大于等于n,如果是,说明他就是素数了,打印出来同时加个制表符的空格。
追问
n不能等于0或1吗?
第二个for不懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-16
展开全部
因为你用的是for循环语句,for循环首先要有初始而后有终结因为你要求100以内的素数,而素数从二开始,所以第一个语句for循环。第二个for循环是为了确定他是否有因子。因为一个数的因子只可能小于他的本身。如果在i<n的所有数字里都没有他的因子,那么这个数肯定为质数。如果i一直循环到大于n那么这个数必定为质数则可以输出。
其次这道题中的break语句要注意了,注意 break语句的使用。
其次这道题中的break语句要注意了,注意 break语句的使用。
追问
n不能等于0或1吗?
第二个for不懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询