|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<math.h>
int main()
{
int k,i,tag;
printf("2,");
for(i=3;i<-100;i+=2)
{
tag=0;
for(k=2;tag==0&&k<sqrt(i);k++)
if(i%k==0)tag=1;
if(tag==0)printf("%d,",i);
}
}
编译器说sqrt有问题
本帖最后由 风过无痕1989 于 2020-8-19 17:19 编辑
你想找到多少以内的素数,由你定:
- #include <stdio.h>
- #include <math.h>
- int prime_number(int x);
- int main()
- {
- int total = 0;
- int temp = 0;
- int m = 0; // 输入的整数
- int i; // 循环次数
- printf("输入一个整数:");
- scanf("%d",&m);
- for(i = 2;i <= m;i++)
- {
- temp = prime_number(i);
- if(temp == 1)
- {
- printf("%d 是素数\n", i);
- total++;
- }
- }
- printf("%d 以内有 %d 个素数\n",m,total);
-
- return 0;
- }
- int prime_number(int i)
- {
- int j;
- int n = 0;
- int temp = 0;
- int k; // i 的平方根
- k = (int)sqrt( (double)i ); // 求平方根,注意sqrt()的参数为 double 类型,这里要强制转换i的类型
- for(j = 2;j <= k;j++)
- {
- if (i%j==0) //若求余为0,说明不是素数,则可以直接返回0
- return 0;
- }
- return 1; //若循环结束,都没有发现求余为0,则说明是素数,返回1
- }
复制代码
|
|