2 条题解
-
0
Step 1 暴力模拟
直接根据题意模拟。可以通过 时的数据。
Step 2 观察样例
观察样例发现,输出的就是所有小于等于 的完全平方数。枚举 ,找出完全平方数并输出。可以通过 时的数据。
Step 3 继续优化
直接枚举完全平方数的算术平方根,直到算术平方根的平方大于 。可以通过 时的数据。
以下仅给出 Step 3 代码。
#include<bits/stdc++.h> #define int long long #define INF 0x3f3f3f using namespace std; int n; signed main(){ cin>>n; for(int i=1;i*i<=n;i++) cout<<i*i<<" "; return 0; }
-
0
C :
#include<stdio.h> int a[100001]; main() { int n; scanf("%d",&n); int i,j; for(i=1;i<=n;i++) { for(j=i;j<=n;j++) { if(j % i==0) { a[j]++; } } } for(i=1;i<=n;i++) { if(a[i]%2==1)printf("%d ",i); } return 0; }
C++ :
#include<iostream> #include<iomanip> #include<cstring> //#include<ctime> #include<cstdio> using namespace std; int main() { //freopen("test3.in","r",stdin); //freopen("test3.out","w",stdout); int n,i,j; bool a[1000000]; memset(a,true,sizeof(a)); cin>>n; for(i=2;i<=n;i++) for(j=i;j<=n;j++) if(j%i==0)a[j]=!a[j]; for(i=1;i<=n;i++) if(a[i]) cout<<i<<' '; cout<<endl; //printf("%0.3f",float(clock())/1000); return 0; }
- 1
信息
- ID
- 263
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 2
- 上传者