仅使用循环的c中给定范围的素数
我如何用c语言编写一个程序,在不使用任何条件(只使用循环!)的情况下给出给定范围内的所有素数。我尝试了许多不同的选择,但没有一个能正常工作。。。 例如: 我已经尝试过的:仅使用循环的c中给定范围的素数,c,loops,C,Loops,我如何用c语言编写一个程序,在不使用任何条件(只使用循环!)的情况下给出给定范围内的所有素数。我尝试了许多不同的选择,但没有一个能正常工作。。。 例如: 我已经尝试过的: #include <stdlib.h> #include <stdio.h> #define UNTIL 1000 #define NOT_INCLUDED 2 int main() { int prime =1, i =1,factor=0; for(prime=1;UNTIL>=p
#include <stdlib.h>
#include <stdio.h>
#define UNTIL 1000
#define NOT_INCLUDED 2
int main()
{
int prime =1, i =1,factor=0;
for(prime=1;UNTIL>=prime ;prime++)
{
for( i=1;i<=prime;i++)
{
for(;prime%i==0;)
{
factor++;
}
}
for(;factor==2;factor=0)
{
printf("prime number: %d \n",prime);
}
}
return 0;
}
#包括
#包括
#定义到1000
#定义未包含的内容2
int main()
{
int素数=1,i=1,因子=0;
for(prime=1;直到>=prime;prime++)
{
对于(i=1;i接受挑战:无隐藏或其他条件
#include <stdio.h>
#include <stdlib.h> // atoi
int main(void) {
const char *p = "2 3 5 7 11 13 17 19 23 29\0\0\0\0\0"; /* extend at will */
for (;;) {
p += printf("%d ", atoi(p));
fflush(stdout);
int z = 42 / *p;
(void)z; /* unused warning */
}
return 0;
}
#包括
#包括//atoi
内部主(空){
const char*p=“2 3 5 7 11 13 17 19 23 29\0\0\0\0”/*任意扩展*/
对于(;;){
p+=printf(“%d”,atoi(p));
fflush(stdout);
int z=42/*p;
(无效)z;/*未使用的警告*/
}
返回0;
}
查看运行在上的代码以检查N
是否为素数,迭代从2
到N
的所有数字,以查看N
是否可被任何其他数字整除。每个数字都可被1
整除,因此当您测试素数时,开始测试2
范例
#include <stdio.h>
int is_prime(int N)
{
//0 and 1 are not primes
if (N < 2)
return 0;
//start testing against 2
for(int i = 2; i < N; i++)
if(N % i == 0)
return 0; //not a prime
return 1; //prime
}
int main()
{
printf("Primes from 0 to 1000:\n");
for(int i = 0; i < 1000; i++)
if(is_prime(i))
printf("%d, ", i);
printf("\n");
return 0;
}
请向我们展示那些不同的(可编译的)选项并告诉我们失败的地方。提示:每个循环都有一个条件。这取决于您是否明智地使用此条件。这似乎很愚蠢。循环运行直到满足一个条件。不太明显的答案是:小心。非常明显的问题是:为什么要?#include#include#define to 1000#define not(u include 2 int main){int prime=1,i=1,factor=0;for(prime=1;直到>=prime;prime++){for(i=1;i
for(int i = 2; i <= N/2; i++)
if(N % i == 0)
return 0; //not a prime
return 1;//prime